基础 - 时间处理

  • 作者:KK

  • 发表日期:2020.05.31


相关模块

datetimetime


常用

  • 输出时间字符串:

    import datetime
    
    now = datetime.datetime.now()
    print( now.strftime('%Y-%m-%d %H:%M:%S') ) # 2020-02-14 11:21:39
    
  • 秒数时间戳

    import time
    
    micro_time = time.time()
    print( int(round(micro_time)) ) # 秒
    print( int(round(micro_time * 1000)) ) # 毫秒
    print( int(micro_time * 1000000) ) # 微秒
    
  • 12小时后的时间:

    import datetime
    
    new_time = datetime.datetime.now() + datetime.timedelta(hours = 12)
    
    print( new_time )
    print( new_time.strftime('%H:%M:%S') )
    

strftime 的符号解析

就是指datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')这里的 strftime,下面是我认为平时各种场景下可能会用到符号解释:

  • %Y带世纪的完整年份数字,如 2019。

  • %y不带世纪的年份数字,如 2019年 那就是19

  • %G也是个完整的年份数字,但它是按 ISO 8601 标准来定义的,可以通俗地理解为零时区的年份,一些跨国应用可能会用到。

  • %m带前导 0 的月份数字,如05表示 5月。

  • %d带前导 0 的日数字,如03表示 3号。

  • %H带前导 0 的24小时制的小时数字,如23表示 晚上11点钟。

  • %I带前导 0 的12小时制的小时数字,如05表示 5点钟。

  • %M带前导 0 的分钟数,如03表示一小时里的 第3分钟。

  • %S带前导 0 的秒数,如03表示一分钟里的 第3秒。

  • %f这个官方说是毫秒,可是输出的不止是3位数,却是6位数,我还没弄懂,欢迎知道的朋友能回复解释一下。

  • %w星期几的数字表示,从 0 到 6,0 表示 星期日。

  • %u星期几的数字表示,从 1 到 7,当然 7 表示 星期日。

  • %a星期几的完整书写,如 Sunday。

  • %a星期几的缩写,如今天星期天是Sun(Sunday)。

  • %B月份的完整书写,如February

  • %b月份的缩写,如 2月 则是Feb

  • %p上午、下午的英文缩写表示:AM / PM,但这是本地化的,意味着在不同国家地区,输出的是不同的表示。

  • %j一年中的第几天,带前导0,如 030 表示一年中的 第30天,也就是 1月30号。

  • %W带前导0的第几周,并且从0开始数起的,如 03 表示一年中的第4周,这是把星期一当成一周的第一天来算的,新的一年里,第一个星期一之前的都算是 第0周。

  • %U带前导0的第几周,并且从0开始数起的,如 03 表示一年中的第4周,这是把星期日当成一周的第一天来算的,新的一年里,第一个星期日之前的都算是 第0周,其实这个我相信大家是几乎不会用到的,只是写出来与上面的 %W 作一个比较而已。

  • %c本地化的日期时间表示,比如中国这里输出的是Sun May 31 15:34:16 2020表示2020年5月31日,星期天,15:34:16秒。