(内部模块)时间日期模块-datetime

作者: sixleaves | 来源:发表于2016-05-29 21:52 被阅读154次
    from datetime import datetime
    
    # case1, 获取现在的时间
    # datetime.now()返回类型是datetime
    now = datetime.now()
    print(now)
    
    # case2, 获取指定日期和时间
    dt = datetime(2016, 5, 28, 1, 5, 50)
    print(dt)
    
    # case3, 将时间转换为时间戳
    # 以1970.1.1日0:0:0开始计数.
    # 小数位表示毫秒数, python的timestamp是以
    # timestamp的整数位表示秒.
    print('timestamp = ', dt.timestamp())
    
    # case4 utc时间与本地时间(东八区)的相互转换
    # utc时间指utc+0:00时区的时间.
    t = 1464527200.0
    print(datetime.fromtimestamp(t))
    print(datetime.utcfromtimestamp(t))
    
    # 设置时区, 需要导入timezone这个类
    # datetime类型有一个时区属性tzinfo, 默认为None.所以无法区分这个datetime是哪个时区的, 除非强制设置tzinfo属性
    from datetime import timezone, timedelta
    tz_utc_8 = timezone(timedelta(hours=8))
    now = datetime.now();
    dt = now.replace(tzinfo=tz_utc_8)
    print('utf+8, dt = ', dt)
    
    # 时区转换.
    # 通过utcnow()拿到当前的UTC时间, 再转换为任意时区的时间
    utc_dt = datetime.utcnow().replace(tzinfo=timezone.utc)
    print('utc_dt = ', utc_dt, timezone.utc)
    
    # astimezone()转换时区为北京时间:
    # timezone(timedelta(houts=n))即可以获得东几区的timezone对象.
    bj_dt = utc_dt.astimezone(timezone(timedelta(hours=8)))
    print('bj_dt = ', bj_dt)
    
    # 如果要存储一个datetime, 最好的做法就是将其转换成一个timestamp再存储
    # 因为一个timestamp的值与时区无关.
    
    
    # str转为datatime
    cday = datetime.strptime('2016-6-1 18:19:59', '%Y-%m-%d %H:%M:%S')
    print(cday)
    
    # datetime的加减
    now = datetime.now()
    temp_now = now + timedelta(hours=10, weeks=10)
    print(temp_now)
    
    
    

    相关文章

      网友评论

        本文标题:(内部模块)时间日期模块-datetime

        本文链接:https://www.haomeiwen.com/subject/gspqdttx.html