zoukankan      html  css  js  c++  java
  • 时间函数datetime time

    # 时间转时间戳
    period = time.mktime(datetime.now().timetuple())
    # 时间戳转结构化时间
    time_len = time.localtime(period)
    # 结构化时间转字符串,并输出自定义格式(时分秒)
    time_len =time.strftime('%H:%M:%S',time_len)

     

    time模块

    time翻译过来就是时间,有我们其实在之前编程的时候有用到过.

    #常用方法
    1.time.sleep(secs)
    (线程)推迟指定的时间运行。单位为秒。
    2.time.time()
    获取当前时间戳

    在计算中时间共有三种方式:

    1.时间戳: 通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型

    2.格式化字符串时间: 格式化的时间字符串(Format String): ‘1999-12-06’

    python中时间日期格式化符号:
    %y 两位数的年份表示(00-99)
    %Y 四位数的年份表示(000-9999)
    %m 月份(01-12)
    %d 月内中的一天(0-31)
    %H 24小时制小时数(0-23)
    %I 12小时制小时数(01-12)
    %M 分钟数(00=59)
    %S 秒(00-59)
    %a 本地简化星期名称
    %A 本地完整星期名称
    %b 本地简化的月份名称
    %B 本地完整的月份名称
    %c 本地相应的日期表示和时间表示
    %j 年内的一天(001-366)
    %p 本地A.M.或P.M.的等价符
    %U 一年中的星期数(00-53)星期天为星期的开始
    %w 星期(0-6),星期天为星期的开始
    %W 一年中的星期数(00-53)星期一为星期的开始
    %x 本地相应的日期表示
    %X 本地相应的时间表示
    %Z 当前时区的名称
    %% %号本身

    3.结构化时间:元组(struct_time) struct_time元组共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天等)img

    首先,我们先导入time模块,来认识一下python中表示时间的几种格式:

    #导入时间模块
    >>>import time
    
    #时间戳
    >>>time.time()
    1500875844.800804
    
    #时间字符串
    >>>time.strftime("%Y-%m-%d %X")
    '2017-07-24 13:54:37'
    >>>time.strftime("%Y-%m-%d %H-%M-%S")
    '2017-07-24 13-55-04'
    
    #时间元组:localtime将一个时间戳转换为当前时区的struct_time
    time.localtime()
    time.struct_time(tm_year=2017, tm_mon=7, tm_mday=24,
              tm_hour=13, tm_min=59, tm_sec=37, 
                     tm_wday=0, tm_yday=205, tm_isdst=0)

    小结:时间戳是计算机能够识别的时间;时间字符串是人能够看懂的时间;元组则是用来操作时间的

    时间格式转换:

    img

    #时间戳-->结构化时间
    #time.gmtime(时间戳)    #UTC时间,与英国伦敦当地时间一致
    #time.localtime(时间戳) #当地时间。例如我们现在在北京执行这个方法:与UTC时间相差8小时,UTC时间+8小时 = 北京时间 
    >>>time.gmtime(1500000000)
    time.struct_time(tm_year=2017, tm_mon=7, tm_mday=14, tm_hour=2, tm_min=40, tm_sec=0, tm_wday=4, tm_yday=195, tm_isdst=0)
    >>>time.localtime(1500000000)
    time.struct_time(tm_year=2017, tm_mon=7, tm_mday=14, tm_hour=10, tm_min=40, tm_sec=0, tm_wday=4, tm_yday=195, tm_isdst=0)
    
    
    
    #结构化时间-->时间戳 
    #time.mktime(结构化时间)
    >>>time_tuple = time.localtime(1500000000)
    >>>time.mktime(time_tuple)
    1500000000.0
    
    
    
    #结构化时间-->字符串时间
    #time.strftime("格式定义","结构化时间")  结构化时间参数若不传,则显示当前时间
    >>>time.strftime("%Y-%m-%d %X")
    '2017-07-24 14:55:36'
    >>>time.strftime("%Y-%m-%d",time.localtime(1500000000))
    '2017-07-14'
    
    
    
    #字符串时间-->结构化时间
    #time.strptime(时间字符串,字符串对应格式)
    >>>time.strptime("2017-03-16","%Y-%m-%d")
    time.struct_time(tm_year=2017, tm_mon=3, tm_mday=16, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=75, tm_isdst=-1)
    >>>time.strptime("07/24/2017","%m/%d/%Y")
    time.struct_time(tm_year=2017, tm_mon=7, tm_mday=24, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=205, tm_isdst=-1)

    img

    #结构化时间 --> %a %b %d %H:%M:%S %Y串
    #time.asctime(结构化时间) 如果不传参数,直接返回当前时间的格式化串
    >>>time.asctime(time.localtime(1500000000))
    'Fri Jul 14 10:40:00 2017'
    >>>time.asctime()
    'Mon Jul 24 15:18:33 2017'
    
    
    
    #时间戳 --> %a %b %d %H:%M:%S %Y串
    #time.ctime(时间戳)  如果不传参数,直接返回当前时间的格式化串
    >>>time.ctime()
    'Mon Jul 24 15:19:07 2017'
    >>>time.ctime(1500000000)
    'Fri Jul 14 10:40:00 2017'

    我们看完了time在来看一个Python处理日期和时间的标准库

    datetime

    获取当前日期和时间

    from datetime import datetime
    
    print(datetime.now())
    
    '''
    结果:2018-12-04 21:07:48.734886
    '''

    注意:datetime是模块,datetime模块还包含一个datetime的类,通过from datetime import datetime导入的才是datetime这个类。

    如果仅导入import datetime,则必须引用全名datetime.datetime

    datetime.now()返回当前日期和时间,其类型是datetime

    获取指定日期和时间

    要指定某个日期和时间,我们直接用参数构造一个datetime

    from datetime import datetime
    
    dt = datetime(2018,5,20,13,14)
    print(dt)
    
    '''
    结果:2018-05-20 13:14:00
    '''

    datetime转换为timestamp(时间戳)

    from datetime import datetime
    
    dt = datetime.now()
    new_timestamp = dt.timestamp()
    print(new_timestamp)
    
    '''
    结果:1543931750.415896
    '''

    timestamp转换为datetime

    import time
    from datetime import datetime
    
    new_timestamp = time.time()
    print(datetime.fromtimestamp(new_timestamp))

    str转换为datetime

    很多时候,用户输入的日期和时间是字符串,要处理日期和时间,首先必须把str转换为datetime。转换方法是通过datetime.strptime()实现,需要一个日期和时间的格式化字符串:

    from datetime import datetime
    
    t = datetime.strptime('2018-4-1 00:00','%Y-%m-%d %H:%M')
    print(t)
    '''
    结果: 2018-04-01 00:00:00
    '''

    datetime转换为str

    如果已经有了datetime对象,要把它格式化为字符串显示给用户,就需要转换为str,转换方法是通过strftime()实现的,同样需要一个日期和时间的格式化字符串:

    from datetime import datetime
    now = datetime.now()
    print(now.strftime('%a, %b %d %H:%M'))
    Mon, May 05 16:28
    

    datetime加减

    对日期和时间进行加减实际上就是把datetime往后或往前计算,得到新的datetime。加减可以直接用+-运算符,不过需要导入timedelta这个类:

    from datetime import datetime, timedelta
    now = datetime.now()
    print(now)
    now1 = now + timedelta(hours=10)
    print(now1)
    now2 = now - timedelta(days=1)
    print(now2)
    now3 = now + timedelta(days=2, hours=12)
    print(now3)
    

    可见,使用timedelta你可以很容易地算出前几天和后几天的时刻。

    Python当前时间是一年中第几周

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
    本文链接:https://blog.csdn.net/Jerry_1126/article/details/80864048

    Python返回当前时间是一年中第几周有好多种方法

    方法一:

    1.  
      >>> import time
    2.  
      >>> print(time.strftime("%W"))
    3.  
      26

    方法二:

    1.  
      >>> from datetime import datetime
    2.  
      >>> datetime.now().isocalendar() # 今年2018年;第26周; 周6; 今天2018年06月30日
    3.  
      (2018, 26, 6)
    4.  
      >>> datetime.now().isocalendar()[1] # 索引为[1],就可以求出一年的第多少周
    5.  
      26
    6.  
      >>> datetime(2018,6,30).isocalendar()[1] # 或者填好今天具体日期来获取第多少周
    7.  
      26

    方法三:

    1.  
      >>> import time
    2.  
      >>> time.localtime()
    3.  
      time.struct_time(tm_year=2018, tm_mon=6, tm_mday=30, tm_hour=9, tm_min=53, tm_sec=10, tm_wday=5, tm_yday=181, tm_isdst=0)
    4.  
      >>> time.localtime()[7] # 一年中的第181天
    5.  
      181
    6.  
      >>> time.localtime()[7]/7+1 # 一年中的第26周
    7.  
      26

    小结

    datetime表示的时间需要时区信息才能确定一个特定的时间,否则只能视为本地时间。

    import datetime
    # 获取当前时间
    d1 = datetime.datetime.now()
    print d1
    # 当前时间加上半小时
    d2 = d1 + datetime.timedelta(hours=0.5)
    print d2
    # 格式化字符串输出
    d3 = d2.strftime('%Y-%m-%d %H:%M:%S')
    print d3
    # 将字符串转化为时间类型
    d4 = datetime.datetime.strptime(date,'%Y-%m-%d %H:%M:%S.%f')
    print d4

    获取本周和本月第一天的日期:

    # -*- coding:utf-8 -*-
    import datetime
    def first_day_of_month():
      '''
      获取本月第一天
      :return:
      '''
      # now_date = datetime.datetime.now()
      # return (now_date + datetime.timedelta(days=-now_date.day + 1)).replace(hour=0, minute=0, second=0,
      # microsecond=0)
      return datetime.date.today() - datetime.timedelta(days=datetime.datetime.now().day - 1)
    def first_day_of_week():
      '''
      获取本周第一天
      :return:
      '''
      return datetime.date.today() - datetime.timedelta(days=datetime.date.today().weekday())
    if __name__ == "__main__":
      this_week = first_day_of_week()
      last_week = this_week - datetime.timedelta(days=7)
      this_month = first_day_of_month()
      last_month = this_month - datetime.timedelta(days=(this_month - date

     # 7) datetime加减

    58 # datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)59 now = datetime.now()
    60 print('7)')
    61 print('当前时间 :', now)
    62 now_stamp = now.timestamp()
    63 print('时间戳 :', now_stamp)
    64 np.savetxt('now_stamp.txt', np.array([now_stamp]))
    65 t = now + timedelta(days=1, hours=8, minutes=5, seconds=20)
    66 print('1天8小时5分20秒之后的时间 :', t)

  • 相关阅读:
    移动 ProgramDataPackage Cache 文件夹
    Visual Studio 2017
    微信小程序 View:flex 布局
    echarts 模拟迁徙
    树莓派3 Windows 10 IoT Core
    Lumia 830 win10m 启用触摸按键
    青岛旅游
    <孤独者生存(小小辛巴投资手记)>读书笔记
    Python.Unix和Linux系统管理指南
    <低风险投资之路>读书笔记
  • 原文地址:https://www.cnblogs.com/xingkongzhizhu/p/10567920.html
Copyright © 2011-2022 走看看