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:     时区名称(如果是本地时间,返回空字符串)
    '''
  • 相关阅读:
    三个心态做人做学问 沧海
    成功走职场要找准自己的"快捷键" 沧海
    免费离线下载 拂晓风起
    Hibernate 获取某个表全部记录时 奇怪现象 (重复出现某个记录) 拂晓风起
    无法读取mdb 如果连接不了ACCESS mdb文件,就尝试安装MDAC 拂晓风起
    Netbeans 使用 Hibernate 逆向工程 生成hbm和pojo 拂晓风起
    如何点击单选框 radio 后面的文字,选中单选框 拂晓风起
    Java 连接access 使用access文件 不用配置 拂晓风起
    mysql下如何执行sql脚本 拂晓风起
    Hibernate配置access Hibernate 连接 access 拂晓风起
  • 原文地址:https://www.cnblogs.com/haiton/p/10784210.html
Copyright © 2011-2022 走看看