Python日期时间添加

2024-06-16 08:42:52 发布

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

我有一个字符串格式的日期时间值。如何将格式从“-”分隔日期更改为“.”分隔日期。我还需要增加6个小时让数据在我的时区。

s = '2013-08-11 09:48:49'
from datetime import datetime,timedelta
mytime = datetime.strptime(s,"%Y-%m-%d %H:%M:%S")
time = mytime.strftime("%Y.%m.%d %H:%M:%S")
dt = str(timedelta(minutes=6*60))  #6 hours
time+=dt
print time
print dt

我得到了以下结果,它在结尾处加上了6个小时,而不是9个小时:

2013.08.11 09:48:496:00:00
6:00:00

Tags: 数据字符串fromimportdatetimetime格式时间
1条回答
网友
1楼 · 发布于 2024-06-16 08:42:52

您正在添加timedelta()字符串表示

>>> from datetime import timedelta
>>> print timedelta(minutes=6*60)
6:00:00

Sumdatetimetimedelta对象,而不是它们的字符串表示;仅在对象求和之后创建字符串:

from datetime import datetime, timedelta
s = '2013-08-11 09:48:49'
mytime = datetime.strptime(s, "%Y-%m-%d %H:%M:%S")
mytime += timedelta(hours=6)
print mytime.strftime("%Y.%m.%d %H:%M:%S")

这将导致:

>>> from datetime import datetime, timedelta
>>> s = '2013-08-11 09:48:49'
>>> mytime = datetime.strptime(s, "%Y-%m-%d %H:%M:%S")
>>> mytime += timedelta(hours=6)
>>> print mytime.strftime("%Y.%m.%d %H:%M:%S")
2013.08.11 15:48:49

但是,您可能需要使用实时时区对象,我建议您使用^{} library

>>> from pytz import timezone, utc
>>> eastern = timezone('US/Eastern')
>>> utctime = utc.localize(datetime.strptime(s, "%Y-%m-%d %H:%M:%S"))
>>> local_tz = utctime.astimezone(eastern)
>>> print mytime.strftime("%Y.%m.%d %H:%M:%S")
2013.08.11 15:48:49

例如,这也会考虑到夏令时。

相关问题 更多 >