从Python中的字符串获取datetime格式

2024-04-19 19:00:19 发布

您现在位置:Python中文网/ 问答频道 /正文

你好,抱歉标题模棱两可,下面是我想做的:

我有一个字符串:

month = '1406'

对应于2014年6月。你知道吗

我怎么能动态地说这个字符串代表六月,我特别想要这个月的最后一天。你知道吗

所以我想把它写成:'%Y-%m-%d %H:%M:%S'的格式,并且有:

'2014-06-30 00:00:00'

Tags: 字符串标题格式动态代表month
2条回答

这似乎起到了作用:

import datetime

mon = '1406'
y, m = divmod(int(mon), 100)

dt = datetime.datetime(2000 + y + m // 12, m % 12 + 1, 1) - datetime.timedelta(days=1)
print dt

使用^{} function可以得到给定月份的最后一天。将字符串转换为两个整数(月、年),从年、月和月的最后一天创建datetime对象:

from datetime import datetime
from calendar import monthrange

year, month = int(month[:2]), int(month[2:])
year += 2000  # assume this century
day = monthrange(year, month)[1]

dt = datetime(year, month, day)  # time defaults to 00:00:00

演示:

>>> from datetime import datetime
>>> from calendar import monthrange
>>> month = '1406'
>>> year, month = int(month[:2]), int(month[2:])
>>> year += 2000  # assume this century
>>> day = monthrange(year, month)[1]
>>> datetime(year, month, day)
datetime.datetime(2014, 6, 30, 0, 0)
>>> print datetime(year, month, day)
2014-06-30 00:00:00

datetime对象的默认字符串转换已经适合您所需的格式;您可以通过对其调用str()或使用^{}方法(如您认为合适)使其显式化。你知道吗

相关问题 更多 >