Python 日期格式相关

发布时间:2019-09-18 07:24:51编辑:auto阅读(1441)

    今天看网上一个说中文日期的问题. 自己试了下.

    #-*- coding: gb2312 -*-
    import datetime, time
    
    #now = time.strftime('%Y年%m月%d日 %H时%M分%S秒', time.localtime()).decode('utf-8')
    now = time.strftime('%Y年%m月%d日 %H时%M分%S秒', time.localtime())
    print now
    
    now = time.strptime(now, '%Y年%m月%d日 %H时%M分%S秒')
    print now
    print time.strftime('%Y-%m-%d %H:%M:%S', now)

    结果如下:

    2015年01月21日 14时22分12秒
    time.struct_time(tm_year=2015, tm_mon=1, tm_mday=21, tm_hour=14, tm_min=22, tm_sec=12, tm_wday=2, tm_yday=21, tm_isdst=-1)
    2015-01-21 14:22:12


    日期 到 字符串:

    >>> time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
    '2015-01-21 14:32:31'
    >>> datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    '2015-01-21 14:33:38'

    字符串 到 时间

    >>> time.strptime("2015-1-2 11:22:33", '%Y-%m-%d %H:%M:%S')
    time.struct_time(tm_year=2015, tm_mon=1, tm_mday=2, tm_hour=11, tm_min=22, tm_sec=33, tm_wday=4, tm_yday=2, tm_isdst=-1)
    >>> datetime.datetime.strptime("2015-1-2 11:22:33", '%Y-%m-%d %H:%M:%S')
    datetime.datetime(2015, 1, 2, 11, 22, 33)

    unix时间戳 到 时间

    >>> time.localtime(1234567890)
    time.struct_time(tm_year=2009, tm_mon=2, tm_mday=14, tm_hour=7, tm_min=31, tm_sec=30, tm_wday=5, tm_yday=45, tm_isdst=0)
    >>> datetime.date.fromtimestamp(1234567890)
    datetime.date(2009, 2, 14)

    时间 到 unix时间戳

    >>> int(time.time())
    1421822833
    >>> time.mktime(datetime.date(2015,1,21).timetuple())
    1421769600.0
    >>> time.mktime(time.strptime("2015-1-21", "%Y-%m-%d"))
    1421769600.0

    日期加减. 日期要格式化为时间元组才可以加减. 

    >>> datetime.datetime.now() #今天
    datetime.datetime(2015, 1, 21, 14, 53, 43, 321906)
    >>> (datetime.datetime.now() - datetime.timedelta(days=3)).day #3天前
    18
    #timedelta支持的单位 days, seconds, microseconds, milliseconds, minutes, hours, weeks
    >>> (datetime.datetime.now() - datetime.timedelta(weeks=1)).day
    14


关键字