官方文档: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 |
|
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)