string转换为datetime_Python 新手入门必学模块之:datetime

本文详细介绍了Python中的datetime和timedelta模块,包括它们的类方法、实例方法以及常见用法。通过示例展示了如何进行日期时间的转换、计算以及时间间隔的操作。此外,还给出了具体的应用场景,如计算特定日期之前的时间和计算距新年剩余的秒数。
摘要由CSDN通过智能技术生成

日期时间模块 datetime

datetime 模块提供了可以通过多种方式操作日期和时间的类。在支持日期时间数学运算的同时,实现更有效地解析属性、格式化输出和数据操作。常用的子类有 datetime 类和 timedelta 类。
  • class datetime.datetime  
    日期和时间的结合。属性:year, month, day, hour, minute, second, microsecond

  • class datetime.timedelta  
    表示两个 date 对象或 time 对象,或者两个 datetime 对象之间的时间间隔,精确到微秒

1. datetime 子类

datetime 对象是一个包含了来自 date 对象和 time 对象所有信息的单一对象。

1.1 类方法

  • now():返回当前的本地 datetime

  • utcnow():返回当前 UTC 日期时间

  • fromtimestamp(timestamp, tz=None):将时间戳转为 datetime 类型的时间。tz为时区参数

  • fromisoformat(date_string):将日期字符串转为 datetime 类型的时间

  • strptime(date_string, format):将时间字符串按照 format 格式解析生成 datetime 类型的时间  

1.2 实例方法

  • date():返回具有同样 year, month 和 day 值的 date 对象

  • time():返回具有同样 hour, minute, second, microsecond 和 fold 值的 time 对象

  • timetuple():返回一个 time.struct_time

  • toordinal():返回日期的预期格列高利历序号

  • timestamp():返回时间戳

  • weekday():返回一个整数代表星期几,星期一为 0,星期天为 6

  • isoweekday():返回一个整数代表星期几,星期一为 1,星期天为 7

  • ctime():返回一个代表日期和时间的字符串

  • strftime(format):返回一个由显式格式字符串所指明的代表日期和时间的字符串  

1.3 使用样例

>>> from datetime import datetime
>>> datetime.strptime('20191010', '%Y%m%d')  # 将时间字符串转成datetime类型
datetime.datetime(2019, 10, 10, 0, 0)
>>> datetime.now()  # 当前时间
datetime.datetime(2019, 11, 1, 15, 42, 20, 119275)
>>> dt = datetime(2019,1,1,0,0,0)  # 实例化datetime对象
>>> dt
datetime.datetime(2019, 1, 1, 0, 0)
>>> dt.date()
datetime.date(2019, 1, 1)
>>> dt.time()
datetime.time(0, 0)
>>> dt.replace(2010)  # 修改时间
datetime.datetime(2010, 1, 1, 0, 0)
>>> dt.timetuple() # 返回time.struct_time类
time.struct_time(tm_year=2019, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=1, tm_yday=1, tm_isdst=-1)
>>> dt.timestamp()  # 时间戳
1546272000.0
>>> dt.weekday() # 返回一个整数代表星期几,星期一为 0,星期天为 6
1
>>> dt.strftime('%Y-%m-%d %X') # 返回日期时间字符串
'2019-01-01 00:00:00'
>>> 

2. timedelta类

timedelta 类用来描述一段时间,你可以把它理解成两个日期或时间点之间的时间间隔。timedelta 对象之间,以及 timedelta 对象和 datetime 对象之间,可以做加减运算。

2.1 参数

要想创建一个 datetime.timedelta 类,你需要将指定的时间段传递给类的构造函数。可选参数包含:
  • weeks:周数  

  • days:天数(默认)

  • hours:小时数

  • minutes:分钟数

  • seconds:秒数

  • microseconds:微妙数  

2.2 使用样例

>>> from datetime import datetime, timedelta
>>> timedelta(days=3) # 3天的时间段
datetime.timedelta(days=3)
>>> timedelta(days=3, hours=2.5)  # 3天加上2.5小时的时间段
datetime.timedelta(days=3, seconds=9000)
>>> now = datetime.now() # 当前时间
>>> now
datetime.datetime(2019, 11, 9, 15, 24, 13, 679425)
>>> delta = timedelta(days=3, hours=2, minutes=15)  # 3天加上2小时15分钟的时间段
>>> now - delta # 3天又2小时15分钟之前的日期时间
datetime.datetime(2019, 11, 6, 13, 9, 13, 679425)

2.3 应用讲解

2.3.1 今年五一节零时之前1376天零7小时是几月几号几时?
>>> from datetime import datetime, timedelta
>>> dt = datetime(2019,5,1,0,0,0)
>>> delta = timedelta(days=1376, hours=7)
>>> dt - delta
datetime.datetime(2015, 7, 24, 17, 0) # 答案是2015年7月24日17时
2.3.2 当前时刻距离新年有多少秒钟?
>>> from datetime import datetime, timedelta
>>> now = datetime.now() # 当前时刻
>>> new_year = datetime(now.year+1, 1, 1, 0, 0, 0) # 下一个元旦的零时
>>> delta = new_year - now # 计算时间间隔
>>> delta.total_seconds() # 获取时间间隔的总秒数
4523121.717534

b9040934ddf2673eceee37951a2b8197.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值