Python 中处理日期和时间的模块 datetime

发布时间 2023-05-27 10:19:08作者: ananmy

 

datetime提供了一些常用的方法。以下是一些常用的 datetime 方法:

1.datetime.datetime.now(): 获取当前时间。例如:datetime.datetime.now() 返回当前时间的 datetime 对象。

#test_demo.py

import datetime

now = datetime.datetime.now()
print(type(now)) # <class 'datetime.datetime'>
print(now) #2023-05-27 09:51:04.956512

 

2.datetime.datetime(year, month, day, hour, minute, second): 创建一个指定时间的 datetime 对象。例如:datetime.datetime(2023, 5, 27, 1, 46, 44) 返回指定时间的 datetime 对象。

3.datetime.datetime.strptime(date_string, format): 将字符串转换为 datetime 对象。例如:datetime.datetime.strptime('2023-05-27 01:46:44', '%Y-%m-%d %H:%M:%S') 返回对应的 datetime 对象。其中 date_string 是要转换的字符串,format 是字符串的格式,返回一个对应的 datetime 对象。

#test_demo.py

import datetime

date = datetime.datetime.strptime("2023-5-25-10-23-30", "%Y-%m-%d-%H-%M-%S")
print(date) # 2023-05-25 10:23:30
print(type(date)) # <class 'datetime.datetime'>

文件名是以生成文件时的时间戳命名时,获取文件生成的时间

#test_demo.py

import datetime


date_file = datetime.datetime.strptime("Log-file-2023-5-26-10-3-9", "Log-File-%Y-%m-%d-%H-%M-%S")
print(date_file)  # 2023-05-26 10:03:09
print(type(date_file))  # <class 'datetime.datetime'>

 

4.datetime.datetime.strftime(format): 将 datetime 对象转换为字符串。例如:datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') 返回当前时间的字符串表示。

# test_demo.py

import datetime

now_str_1 = datetime.datetime.now().strftime("%Y-%m-%d") #  将当前时间转成str类型的
        now_str_2 = datetime.datetime.now().strftime("%Y-%m-%d-%H-%M-%S")
print(now_str_1)  # 2023-05-27
print(now_str_2)  # 2023-05-27-10-08-47
print(type(now_str_2)) # str

 

5.datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0): 表示时间间隔的类。可以用来进行时间的加减。例如:datetime.datetime.now() + datetime.timedelta(days=1) 返回明天的当前时间。

6.datetime.datetime.timestamp(): 将 datetime 对象转换为时间戳。例如:datetime.datetime.now().timestamp() 返回当前时间的时间戳。

7.datetime.datetime.fromtimestamp(timestamp): 将时间戳转换为 datetime 对象。例如:datetime.datetime.fromtimestamp(1654175204) 返回对应的 datetime 对象。

需要注意的是,datetime 对象是不可变的。如果需要进行时间的加减等操作,应该使用 timedelta 类来创建时间间隔对象,并进行加减操作。