• python 常用 time, datetime处理


    python 中 time 有三种格式:

    float,

    struct tuple(time.struct_time 或 datetime.datetime),

    str

    常用的:

    float --> struct tuple:   time.localtime( float )

    struct time tuple --> str: time.strftime(format, struct time tuple)

    str --> struct time tuple: time.strptime(str, format)

    struct time tuple --> float : time.mktime(struct time tuple)

    struct time tuple --> datetime: datetime(*time_tuple[0:6])

    float --> datetime: datetime.datetime.fromtimestamp( float )

    datetime --> str: datetime.strftime(format, datetime)

    str --> datetime: datetime.strptime(str, format)

    datetime --> struct time tuple: datetime.timetuple()

    Note:

    time 是 float 为基础,小数点后是毫秒,整数部分是秒。(Java 是毫秒,所以,python_time*1000 == Java_time)

    datetime 是int, 略去了毫秒部分。datetime tuple 少于 struct_time

    1. 当前时间

    复制代码
    >>> import time
    >>> time.time()
    1450681042.751
    
    >>> time.localtime(time.time())
    time.struct_time(tm_year=2015, tm_mon=12, tm_mday=21, tm_hour=15, tm_min=0, tm_sec=2, tm_wday=0, tm_yday=355, tm_isdst=0)
    
    >>> time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
    '2015-12-21 15:01:28'
    
    
    >>> from datetime import datetime
    >>> datetime.now()
    datetime.datetime(2015, 12, 21, 14, 58, 38, 279000)
    
    >>> datetime.today()
    datetime.datetime(2015, 12, 21, 14, 59, 20, 204000)
    
    >>> now = datetime.now()
    >>> now.year, now.month, now.day, now.hour, now.minute, now.second, now.microsecond
    
    >>> now.isocalendar() # 2015年 第52周 星期一
    (2015, 52, 1)
    
    >>> now.isoweekday() # 星期几,1:Monday; 而 now.weekday() 返回值从0开始
    1
    复制代码

    2. 日期字符串--> 日期

    复制代码
    >>> s='2015-12-21 15:01:28'
    >>> timeTuple = datetime.strptime(s, '%Y-%m-%d %H:%M:%S')
    datetime.datetime(2015, 12, 21, 15, 1, 28)
    
    >>> datetime.datetime.strftime('%Y/%m/%d %H:%M:%S', timeTuple)

    >>> s='2015-12-21 15:01:28'
    >>> timeTuple = datetime.strptime(s, '%Y-%m-%d %H:%M:%S')
    time.struct_time(tm_year=2015, tm_mon=12, tm_mday=21, tm_hour=15, tm_min=1, tm_sec=28, tm_wday=0, tm_yday=355, tm_isdst=-1)
    
    >>> time.strftime('%Y/%m/%d %H:%M:%S',timeTuple)
    复制代码
    复制代码
      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. 时间戳

    >>> time.mktime(time.strptime(s,'%Y-%m-%d %H:%M:%S'))
    1450681288.0
    
    >>> int(time.time())
    # timestamp to time tuple in UTC
    timestamp = 1226527167.595983
    time_tuple = time.gmtime(timestamp)
    print repr(time_tuple)
    # timestamp to time tuple in local time
    timestamp = 1226527167.595983
    time_tuple = time.localtime(timestamp)
    print repr(time_tuple)

    2. 日期相加减

    复制代码
    import datetime
    
    now = datetime.datetime.now() # datetime.datetime(2015, 12, 16, 15, 6, 37, 420000)
    dayOfweek = datetime.datetime.isoweekday()
    if dayOfweek == 1: # Monday
        last_time = now + datetime.timedelta(days=-3)
    else:
        last_time = now + datetime.timedelta(days=-1)


    复制代码
     转:http://www.cnblogs.com/snow-backup/p/5063665.html
  • 相关阅读:
    Spring Boot从入门到精通(一)搭建第一个Spring Boot程序
    程序员未来的出路究竟在哪里?一位老码农的心声
    ​IntelliJ IDEA使用技巧—使用EasyCode插件一键生成代码04期
    浅谈Java后端开发工程师腾讯面试经历分享总结
    Java面试技巧—如何自我介绍
    互联网大厂Java面试题集—Spring boot常见面试题(二)
    互联网大厂Java面试题集—Spring boot面试题(一)
    ActiveMQ消息队列从入门到实践(4)—使用Spring JMS收发消息
    ActiveMQ消息队列从入门到实践(1)—JMS的概念和JMS消息模型
    有多少程序员干到35岁,那么其他人去干什么了?
  • 原文地址:https://www.cnblogs.com/royfans/p/7232876.html
Copyright © 2020-2023  润新知