官方文档:Basic date and time types 和 Time access and conversions
常见时间格式化应用
- 如果我们只需要一个时间戳,使用
time.time()或者datetime.datetime.timestamp(),结果为10位数字.6位数字二者等同;如果想要10位或13位时间戳,只需要执行int(x)转换或int(x*1000)即可。
- 如果只需要一个日期,可以使用
datetime.datetime.today().isoformat()或者time.strftime('%Y-%m-%d'),结果举例:2024-04-05;
- 如果我们想指定格式的话,可以使用
datetime.datetime.today().strftime('%Y.%M.%D')或者time.strftime(),而这等同,结果举例:2024.04.05;
- 如果想计算时间差值,比如计算出昨天的日期,可以使用如下方法:
datetime.datetime.today() - datetime.timedelta(days=1)即当天日期减去1天的差值。
- 时间戳转时间字符串:
time.strftime(format_string, time.localtime(时间戳数字));
- 时间字符串转时间戳:
time.mktime(time.strptime(data_string, format))。
datetime
datetime.date
| 属性/方法 |
功能 |
说明 |
| .max |
日期最大值 |
类属性 |
| .min |
日期最小值 |
类属性 |
| .today() |
今天的日期 |
类方法 |
| .year |
对象的年属性 |
int类型 |
| .month |
对象的月属性 |
int类型 |
| .day |
对象的天属性 |
int类型 |
| .weekday |
对象的星期属性 |
周一 ~ 周日(0 ~ 6) |
| .isoweekday |
对象的星期属性 |
周一 ~ 周日(1 ~ 7) |
| .isoformat() |
对象的字符串格式化 |
例如:2024-04-05 |
| .strftime(format: str) |
指定格式格式化 |
例如:x.strftime('%Y-%m-%d') |
| .replace() |
更改对象中的属性 |
例如:x = x.replace(year=9) |
datetime.time
| 属性/方法 |
功能 |
说明 |
| .max |
时间最大值 |
类属性 |
| .min |
时间最小值 |
类属性 |
| .hour |
对象的小时属性 |
int类型 |
| .minute |
对象的分钟属性 |
int类型 |
| .second |
对象的秒属性 |
int类型 |
| .microsecond |
对象的微秒属性 |
int类型 |
| .isoformat() |
对象的字符串格式化 |
例如:16:14:15 |
| .strftime(format: str) |
指定格式格式化 |
例如 x.strftime('%H:%M:%S') |
| .replace() |
更改对象中的属性 |
例如:x = x.replace(hour=10) |
datetime.datetime
这个对象结合了上述两个对象的特点。
| 属性/方法 |
功能 |
说明 |
| .max |
日期最大值 |
类属性 |
| .min |
日期最小值 |
类属性 |
| .now() |
现在的日期 |
类方法,同 .today() |
| .today() |
今天的日期 |
类方法,同 .now() |
| .strptime(data_string, format) |
将时间字符串转换为事件对象 |
类方法 |
| .year |
对象的年属性 |
int类型 |
| .month |
对象的月属性 |
int类型 |
| .day |
对象的天属性 |
int类型 |
| .hour |
对象的小时属性 |
int类型 |
| .minute |
对象的分钟属性 |
int类型 |
| .second |
对象的秒属性 |
int类型 |
| .microsecond |
对象的微秒属性 |
int类型 |
| .date() |
对象的date部分 |
=datetime.date |
| .time() |
对象的time部分 |
=datetime.time |
| .isoformat() |
对象的字符串格式化 |
例如:2024-04-05T16:14:15.318302 |
| .timestamp() |
13位.时间戳 |
例如:1234567890.123456,相当于time.time() |
| strftime()(format: str) |
指定格式格式化 |
例如 x.strftime('%Y-%m-%d %H:%M:%S') |
datetime.timedelta
timedelta的签名如下:
def __new__(cls, days=0, seconds=0, microseconds=0, milliseconds=0, minute=0, hours=0, weeks=0):
| 属性/方法 |
功能 |
说明 |
| .max |
timedelta的最大值 |
类属性 |
| .min |
timedelta的最小值 |
类属性 |
| .days |
timedelta对象的天数 |
实例化时的weeks会转换成这个 |
| .microseconds |
timedelta对象的微秒数 |
实例化时minutes和hours会转换成这个 |
| .total_seconds |
timedelta对象的总大小(换算成秒) |
浮点数 |
time
| 属性/方法 |
功能 |
说明 |
| time.gmtime() |
struct_time对象 |
无时区信息 |
| time.localtime() |
struct_time对象 |
带时区偏移,比如中国的时间=gmt+0800 |
| time.mktime(struct_time) |
时间对象 -> 时间戳 |
float对象 |
| time.time() |
时间戳 |
比如:1234567890.123456 |
| time.sleep(seconds) |
休眠 |
|
| time.strftime(format, struct_time) |
指定格式格式化 |
第二参数可省略,比如:time.strftime('%Y-%m-%d') |
| time.strptime(data_string, format) |
格式化时间字符串,返回struct_time |
|