zoukankan      html  css  js  c++  java
  • Python datetime time 等时间 日期 之间的计算和相互转化

    from datetime import datetime, date, timedelta, timezone
    from time import time, ctime, localtime, strftime, strptime, mktime
    
    
    '''
    %Y %m %d %H %M %S 年月日时分秒
    %A %a   全写星期 简写星期
    
    '''
    # 生成当前时区日期事件字符串
    tct = ctime()
    print(tct,type(tct))
    print(tct.strip(),type(tct.strip()))
    
    # 两个获取时间的方法
    print(time(),datetime.now())
    
    print('--------------------------')
    # 获取日期对象并格式化输出
    print(datetime.now().strftime('%Y-%m-%d %Z %H:%M:%S %A %x %X 星期 %w'))
    
    # 获取可计算的日期差值对象
    print(timedelta(1))
    
    # 日期字符串转化为datetime对象
    datetime_str = '2019-08-12 12/23/50'
    
    print(datetime.strptime(datetime_str, '%Y-%m-%d %H/%M/%S'))
    
    dt = datetime.now()
    print(timedelta(2))
    
    # timetuple 方式获取日期对象
    dto = datetime(19,4,12,23,45,10)
    print(dto)
    print(dto.timetuple())
    
    print('=============================')
    # 日期计算,根据日期时间差值计算日期
    today = datetime.now()
    print(today)
    days = timedelta(3)
    afterday = today+days
    print(afterday)
    day_minute = timedelta(days=3,seconds=3600)
    after_day = today+day_minute
    print(after_day)
    
    print('>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>')
    
    # 获取UTC时间并进行时区换算
    utcdt = datetime.utcnow()
    print(utcdt)
    print(utcdt.astimezone(timezone(timedelta(hours=8))))
    print(datetime.now().strftime('%Y>%m>%d %H:%M:%S'))
    print(datetime.now()-timedelta(hours=8))
    
    # 秒数换日期时间
    n = time()
    d = timedelta(seconds=n)
    print(localtime(n))
    print(strftime('%Y/%m/%d %H:%M', localtime(n)))
    
    # 获取当前日星期几 0-6 周一-周日
    print(datetime.weekday(datetime.now()))
    
    # 日期格式字符串换算秒数
    st = strptime('2019.03.24', '%Y.%m.%d')
    print(st)
    print(mktime(st))
    
    '''
    Sun Apr 28 15:12:38 2019 <class 'str'>
    Sun Apr 28 15:12:38 2019 <class 'str'>
    1556435558.4862983 2019-04-28 15:12:38.486300
    --------------------------
    2019-04-28  15:12:38 Sunday 04/28/19 15:12:38 星期 0
    1 day, 0:00:00
    2019-08-12 12:23:50
    2 days, 0:00:00
    0019-04-12 23:45:10
    time.struct_time(tm_year=19, tm_mon=4, tm_mday=12, tm_hour=23, tm_min=45, tm_sec=10, tm_wday=4, tm_yday=102, tm_isdst=-1)
    =============================
    2019-04-28 15:12:38.487751
    2019-05-01 15:12:38.487751
    2019-05-01 16:12:38.487751
    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    2019-04-28 07:12:38.487764
    2019-04-28 07:12:38.487764+08:00
    2019>04>28 15:12:38
    2019-04-28 07:12:38.487788
    time.struct_time(tm_year=2019, tm_mon=4, tm_mday=28, tm_hour=15, tm_min=12, tm_sec=38, tm_wday=6, tm_yday=118, tm_isdst=0)
    2019/04/28 15:12
    6
    time.struct_time(tm_year=2019, tm_mon=3, tm_mday=24, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=6, tm_yday=83, tm_isdst=-1)
    1553356800.0
    '''
    
    '''
    %a      星期的简写。如 星期三为Web
    %A      星期的全写。如 星期三为Wednesday
    %b      月份的简写。如4月份为Apr
    %B      月份的全写。如4月份为April
    %c:     日期时间的字符串表示。(如: 04/07/10 10:43:39)
    %d:     日在这个月中的天数(是这个月的第几天)
    %f:     微秒(范围[0,999999])
    %H:     小时(24小时制,[0, 23])
    %I:     小时(12小时制,[0, 11])
    %j:     日在年中的天数 [001,366](是当年的第几天)
    %m:     月份([01,12])
    %M:     分钟([00,59])
    %p:     AM或者PM
    %S:     秒(范围为[00,61],为什么不是[00, 59],参考python手册~_~)
    %U:     周在当年的周数当年的第几周),星期天作为周的第一天
    %w:     今天在这周的天数,范围为[0, 6],6表示星期天
    %W:     周在当年的周数(是当年的第几周),星期一作为周的第一天
    %x:     日期字符串(如:04/07/10)
    %X:     时间字符串(如:10:43:39)
    %y:     2个数字表示的年份
    %Y:     4个数字表示的年份
    %z:     与utc时间的间隔 (如果是本地时间,返回空字符串)
    %Z:     时区名称(如果是本地时间,返回空字符串)
    '''
  • 相关阅读:
    根据包路径输出类列表
    Logback配置
    接口的幂等性
    mock获取入参数并动态设置返回值
    linux,日志查找技巧
    scrapy 一些坑
    Pyinstaller打包附带DLL、图标和压缩EXE方法
    scrapy 爬虫教程
    买房
    Python: 在CSV文件中写入中文字符
  • 原文地址:https://www.cnblogs.com/haiton/p/10784210.html
Copyright © 2011-2022 走看看