python-task6-time和datetime之间转换

在python中,通常有三种方式来表达时间

1.时间戳(timestamp)

2.格式化的时间字符串(format time)

3.元祖(struct_time),其中有9个元素,分表代表年、月、日、时、分、秒、weekday、一年中第几天、是否为夏令时

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o091SQu3-1647481146122)(图片/image-20211015112834566.png)]

time用法

# -*- coding:utf-8 -*-
import time
print time.time()    # 打印当前时间,时间戳
print time.localtime()    # 打印当前时间,时间元祖
print time.gmtime()        # 打印当前时间,时间元祖
print time.localtime(time.time())    # 打印当前时间,时间元祖
print time.gmtime(time.time())      # 打印当前时间,时间元祖
print time.localtime().tm_year       # 打印当前时间的年
print time.strftime("%Y-%m-%d %H:%M:%S")   # 打印当前时间,时间格式化
print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())  # 打印当前时间,时间格式化
print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))  # 打印当前时间,时间格式化
print time.mktime(time.localtime())    # 元祖格式转字符串
print time.strptime(time.strftime("%Y-%m-%d %H:%M:%S"),  '%Y-%m-%d %X')   # 时间格式化转时间元祖

print time.asctime(time.localtime())    # 生成固定格式,Thu Aug 20 23:39:47 2020
print time.ctime(time.time())          # 生成固定格式

# time时间加减,加减单位以秒为单位
print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()+3600))



输出结果:
1597939235.43
time.struct_time(tm_year=2020, tm_mon=8, tm_mday=21, tm_hour=0, tm_min=0, tm_sec=35, tm_wday=4, tm_yday=234, tm_isdst=0)
time.struct_time(tm_year=2020, tm_mon=8, tm_mday=20, tm_hour=16, tm_min=0, tm_sec=35, tm_wday=3, tm_yday=233, tm_isdst=0)
time.struct_time(tm_year=2020, tm_mon=8, tm_mday=21, tm_hour=0, tm_min=0, tm_sec=35, tm_wday=4, tm_yday=234, tm_isdst=0)
time.struct_time(tm_year=2020, tm_mon=8, tm_mday=20, tm_hour=16, tm_min=0, tm_sec=35, tm_wday=3, tm_yday=233, tm_isdst=0)
2020
2020-08-21 00:00:35
2020-08-21 00:00:35
2020-08-21 00:00:35
1597939235.0
time.struct_time(tm_year=2020, tm_mon=8, tm_mday=21, tm_hour=0, tm_min=0, tm_sec=35, tm_wday=4, tm_yday=234, tm_isdst=-1)
Fri Aug 21 00:00:35 2020
Fri Aug 21 00:00:35 2020
2020-08-21 01:00:35

datetime用法

datetime模块重新封装了time模块,提供的类有:date,time,datetime,timedelta,tzinfo

  • date类

    print 'date.max:', date.max    # 支持最晚的日期
    print 'date.min:', date.min    # 支持最早的日期
    print 'date.today():', date.today()    # 当前日期
    print 'date.fromtimestamp():', date.fromtimestamp(time.time())    # 时间戳转日期
    print '当前日期的年:', date.today().year    # 获取日期的年
    print 'timetuple():', date.today().timetuple()   # 将日期转为日期元祖
    print date.today().weekday()     # 打印日期为星期几
    print date.today().isoweekday()      # 打印日期为星期几,算法跟上面的有点区别
    print date.today().isocalendar()     # 返回格式如(year,month,day)的元组;
    print date.today().isoformat()           # 返回格式如'YYYY-MM-DD’的字符串;
    print date.today().strftime("%Y-%m-%d")     #返回格式如'YYYY-MM-DD’的字符串;
    print date.today().replace(day = 27) 
    
  • time类

    tm = datetime.time(10,23,10)   # time对象
    print 'tm:', tm
    print 'hour: %d, minute: %d, second: %d, microsecond: %d' % (tm.hour, tm.minute, tm.second, tm.microsecond)   #时、分、秒、微秒;
    tm1 = tm.replace(hour=20)    # 替换时间
    print 'tm1:', tm1
    print 'isoformat():', tm.isoformat()      # 格式化时间
    print 'strftime()', tm.strftime("%X")         # 格式化时
    
  • datetime类,datetime相当于date和time结合起来

    print 'datetime.max:', datetime.max
    print 'datetime.min:', datetime.min
    print 'datetime.resolution:', datetime.resolution
    print 'today():', datetime.today()    # 打印当前日期+时间
    print 'now():', datetime.now()           # 打印当前日期+时间
    print 'utcnow():', datetime.utcnow()     # 格林威治时间
    print 'fromtimestamp(tmstmp):', datetime.fromtimestamp(time.time())    # 打印当前日期+时间
    print 'utcfromtimestamp(tmstmp):', datetime.utcfromtimestamp(time.time())
    print datetime.strptime("2020-08-21 00:39:35", "%Y-%m-%d %H:%M:%S")    # 将格式字符串转换为datetime对象;
    print datetime.now().time()    # 获取time对象
    print datetime.now().replace(2023)     # 替换日期年
    print datetime.now().timetuple()        # 将当期日期转为元祖
    print datetime.now().weekday()           # 日期为星期几
    print datetime.now().isoformat()           # 将日期格式化
    print datetime.now().ctime()                # 固定格式
    print datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    
  • timedelta,时间加减(tips:使用timedelta可以很方便的在日期上做天days,小时hour,分钟,秒,毫秒,微妙的时间计算,如果要计算月份则需要另外的办法。)

    dt = datetime.now()
    #日期减一天
    dt1 = dt + timedelta(days=-1)#昨天
    dt2 = dt - timedelta(days=1)#昨天
    dt3 = dt + timedelta(days=1)#明天
    delta_obj = dt3-dt
    print type(delta_obj),delta_obj#<type 'datetime.timedelta'> 1 day, 0:00:00
    print delta_obj.days ,delta_obj.total_seconds()#1 86400.0
    
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值