【超详细】Python datetime(当前日期、时间戳转换、前一天日期等)【附:时区原理详解】


作者:小猪快跑

基础数学&计算数学,从事优化领域6年+,主要研究方向:MIP求解器、整数规划、随机规划、智能优化算法

python3 的时区是一个很容易出错的地方。本篇将从原理层面剖析时区概念,让读者真正学懂时区,不踩坑。

如有错误,欢迎指正。如有更好的算法,也欢迎交流!!!——@小猪快跑

相关文献

当前时间

from datetime import datetime

print(datetime.now())
# 2024-07-12 14:39:59.531525

前一天日期、后一天日期

from datetime import datetime, timedelta

dt = datetime(2024, 1, 1)

dt + timedelta(1)
# datetime.datetime(2024, 1, 2, 0, 0)

dt - timedelta(1)
# datetime.datetime(2023, 12, 31, 0, 0)

东八区(北京)时间

import pytz
from datetime import datetime

print(datetime(2024, 1, 1, tzinfo=pytz.timezone('Etc/GMT-8')))
# 2024-01-01 00:00:00+08:00

时间戳转换

datetime -> str

import pytz
from datetime import datetime

dt = datetime(2024, 1, 1, tzinfo=pytz.timezone('Etc/GMT-8'))

fmt = '%Y-%m-%d %H:%M:%S%z'
dt.strftime(fmt)
# 2024-01-01 00:00:00+0800

fmt = '%a %d %b %Y, %I:%M%p'
dt.strftime(fmt)
# Mon 01 Jan 2024, 12:00AM

fmt = '%d/%m/%y %H:%M:%S.%f'
dt.strftime(fmt)
# 01/01/24 00:00:00.000000

'The {1} is {0:%d}, the {2} is {0:%B}, the {3} is {0:%I:%M%p}.'.format(dt, "day", "month", "time")
# 'The day is 01, the month is January, the time is 12:00AM.'

str -> datetime

from datetime import datetime

datetime.strptime("21/11/06 16:30", "%d/%m/%y %H:%M")
# datetime.datetime(2006, 11, 21, 16, 30)

datetime -> timestamp(时间戳)

from datetime import datetime

dt = datetime(2024, 1, 1)
dt.timestamp()
# 1704038400.0

timestamp -> datetime

from datetime import datetime

datetime.fromtimestamp(1704038400)
# datetime.datetime(2024, 1, 1, 0, 0)

下面列出了 1989 年 C 标准所要求的所有格式代码,这些代码可在所有使用标准 C 实现的平台上运行。

指令 含义
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值