zoukankan      html  css  js  c++  java
  • python之 datetime模块

    datetime是python处理时间和日期的标准库.

    1.基本对象

    from datetime import datetime
    datetime.time()   #时,分,秒,微秒 自动转换成str字符串    与 _repr_不一样
    datetime.date()    #年,月,日
    datetime.datetime()  ##########年,月,日,时,分,秒,微秒    (最常用)
    
    # 例子
    t= datetime.time(20,30,1,2)
    print('str:',t)    #str: 20:30:01.000002   默认自动转换成str
    print('repr',repr(t))   #repr datetime.time(20, 30, 1, 2)

    2.实用函数

    # 当前日期时间: 
    datetime.datetime.now()
    
    # 当前UTC日期时间:
    datetime.datetime.utcnow()
    
    # 时间戳转日期时间:
    datetime.datetime.fromtimestamp(ts)
    # 例子
    ts = datetime.datetime.fromtimestamp(1519909295.2198606)    #时间戳转换为日期时间
    print(ts)   #2018-03-01 21:01:35.219861
    
    # 日期时间转时间戳
    time. mktime(dt. timetuple())
    
    # 时间计算
    datetime.timedelta( days=0,seconds=0, microseconds=0 milliseconds=0,minutes=0, hours=0, weeks=0 )
    
    
    

    3.时间与字符串之间转换

    datetime.strptime(string, format_string)
    # 例子 将时间格式的字符串转换为时间对象
    day = datetime.datetime.strptime('2018-6-1 13:13:13', '%Y-%m-%d %H:%M:%S')
    print(type(day), day)
    
    # 将时间对象进行格式化
    now = datetime.datetime.now()     
    new_day = now.strftime('%Y-%m-%d %H:%M:%S')   # 注意与time模块的稍有不同
    print(type(new_day), new_day)         # <class 'str'> 2018-08-25 22:37:35
    print(type(now), now)                # <class 'datetime.datetime'> 2018-08-25 22:37:35.391563

    这里写图片描述

    4.时区问题:

    必须要在时间对象上附加时区信息 !

    datetime.timezone( offset, name )

    时区对象:

    tz_utc = datetime.timezone.utc   #标准时区
    print('str:',str(tz_utc))   #str: UTC+00:00
    print('repr:',repr(tz_utc))   #repr: datetime.timezone.utc
    print('------')
    
    tz_china = datetime.timezone(datetime.timedelta(hours=8),'Asia/Beijing')   #北京(+8区)
    print('str:',str(tz_china))   #str: Asia/Beijing
    print('repr:',repr(tz_china))   #repr: datetime.timezone(datetime.timedelta(0, 28800), 'Asia/Beijing')
    print('------')
    
    tz_america = datetime.timezone(datetime.timedelta(hours=-8),'America/los_Angeles')   #美国时区
    print('str:',str(tz_america))   #str: America/los_Angelesg
    print('repr:',repr(tz_america))   #repr: datetime.timezone(datetime.timedelta(-1, 57600), 'America/los_Angeles')
    print('------')

    转换时间:

    cn_dt = datetime.datetime(2018,2,27,20,30,tzinfo=tz_china)  #北京时间
    print('北京时间:',cn_dt)
    
    utc_dt = cn_dt.astimezone(datetime.timezone.utc)    #0时区
    print('零时区时间:str:',str(utc_dt))   #str: 2018-02-27 12:30:00+00:00
    print('repr:',repr(utc_dt))  #repr: datetime.datetime(2018, 2, 27, 12, 30, tzinfo=datetime.timezone.utc)
    print('------')
    
    us_dt = utc_dt.astimezone(tz_america)           #美国时间
    print('美国时间:str:',str(us_dt))   #str: 2018-02-27 04:30:00-08:00
    print('repr:',repr(us_dt))  #repr: datetime.datetime(2018, 2, 27, 4, 30, tzinfo=datetime.timezone(datetime.timedelta(-1, 57600), 'America/los_Angeles'))
    print('------')
  • 相关阅读:
    hdu 5534(dp)
    hdu 5533(几何水)
    hdu 5532(最长上升子序列)
    *hdu 5536(字典树的运用)
    hdu 5538(水)
    假如数组接收到一个null,那么应该怎么循环输出。百度结果,都需要提前判断。否则出现空指针异常。。我还是想在数组中实现保存和输出null。
    第一个登录页面 碰到的疑问
    浅谈堆和栈的区别
    Java中的基础----堆与栈的介绍、区别
    JS的Document属性和方法
  • 原文地址:https://www.cnblogs.com/shuai06/p/12397487.html
Copyright © 2011-2022 走看看