【问题标题】:Python 2.7 - Convert datetime with +01:00Python 2.7 - 使用 +01:00 转换日期时间
【发布时间】:2018-02-06 14:22:48
【问题描述】:

所以我有这个字符串:'2018-02-06T12:12:29.98+01:00' 这是一个日期。最终,我想将其转换回包含此日期的字符串:'2018-02-06 13:12:29'。所以基本上我只想删除+01:00。为此,我想我首先需要将字符串转换为这样的日期对象:

import pytz
import dateutil.parser
tempdate = '2018-02-06T12:12:29.98+01:00'
test = dateutil.parser.parse(tempdate)
print(test) # --> 2018-02-06 12:12:29.980000+01:00

当我稍后尝试将其转换为所需的格式并像这样删除 +01:00 时,我得到了一小时而不是向前一小时:

date = test.astimezone(pytz.utc)
print(date) # --> 2018-02-06 11:12:29.980000+00:00

有谁知道我该如何解决这个问题?我正在使用 python 2.7

【问题讨论】:

  • 如果test 是+1hr,date 不应该是-1hr,即我们应该看到 11:12:29 吗?
  • '2018-02-06T12:12:29.98+01:00' 这意味着当地时间 12:12,恰好是 UTC+1(中欧)。 test.astimezone(pytz.utc) 然后将此时间转换为 UTC,即 11:12。那么你确定要在你的临时日期上增加一个小时来得到 13:12 吗?
  • 您想保持相同的时间只需更改 tz?

标签: python python-2.7 date datetime


【解决方案1】:
from datetime import datetime
from dateutil.parser import parse
import pytz

date_str = '2018-02-06T12:12:29.98+01:00'
date = parse(date_str)
date = date.replace( tzinfo=pytz.utc )
print(date)

2018-02-06 12:12:29.980000+00:00

pytz 来救援 :-)

【讨论】:

  • 期望和预期的输出应该是 13:12 nåt 12:12
  • @danielo 然后„所以基本上我只想删除 +01:00。“ 在你的问题中是一个 bit 误导。 ;-)
  • @danielo 还有为什么你想增加一个小时?
猜你喜欢
  • 2022-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-24
  • 2021-04-24
  • 1970-01-01
  • 2017-12-28
  • 1970-01-01
相关资源
最近更新 更多