我正在以"2009-05-28T16:15:00"的格式获取日期时间字符串(我相信这是ISO 8601).一个hackish选项似乎是使用time.strptime并将元组的前六个元素传递给datetime构造函数来解析字符串,如:
datetime.datetime(*time.strptime("2007-03-04T21:08:12", "%Y-%m-%dT%H:%M:%S")[:6])
Run Code Online (Sandbox Code Playgroud)
我无法找到一种"更清洁"的方式来做到这一点.有吗?
如何将本地时间的日期时间字符串转换为UTC时间的字符串?
我确定我以前做过这个,但找不到它,所以希望能帮助我(以及其他人)在将来做到这一点.
澄清:例如,如果我2008-09-17 14:02:00在我的本地时区(+10)中,我想生成一个具有相同UTC时间的字符串:2008-09-17 04:02:00.
此外,请访问http://lucumr.pocoo.org/2011/7/15/eppur-si-muove/,请注意,一般情况下这不可能与DST和其他问题一样,因此从当地时间到UTC时间.
我从来没有把时间转换成UTC.最近有一个请求要让我的应用程序能够识别时区,而且我一直在圈子里跑.关于将本地时间转换为UTC的大量信息,我发现它相当基本(也许我也做错了),但我找不到任何有关将UTC时间轻松转换为最终用户时区的信息.
简而言之,Android应用程序向我发送(appengine app)数据,在该数据中是一个时间戳.要将时间戳存储到我正在使用的时间:
datetime.utcfromtimestamp(timestamp)
Run Code Online (Sandbox Code Playgroud)
这似乎有效.当我的应用程序存储数据时,它将提前5小时存储(我是EST -5)
数据存储在appengine的BigTable上,当检索到它时,它就像一个字符串一样:
"2011-01-21 02:37:21"
Run Code Online (Sandbox Code Playgroud)
如何在用户正确的时区将此字符串转换为DateTime?
此外,用户时区信息的推荐存储是什么?(你怎么通常存储TZ信息,即:"-5:00"或"EST"等等等等),我敢肯定的答案,我的第一个问题可能包含一个参数的回答第二个.
我正在寻找的是可以将"明天早上6点"或"中午的下一个模拟"转换为适当的日期时间对象.
我有一个巨大的数据框,其中包含许多列,其中许多列都是type的datetime.datetime。问题在于,许多还具有混合类型,包括例如datetime.datetime值和None值(以及可能的其他无效值):
0 2017-07-06 00:00:00
1 2018-02-27 21:30:05
2 2017-04-12 00:00:00
3 2017-05-21 22:05:00
4 2018-01-22 00:00:00
...
352867 2019-10-04 00:00:00
352868 None
352869 some_string
Name: colx, Length: 352872, dtype: object
Run Code Online (Sandbox Code Playgroud)
因此导致object类型列。这可以用解决df.colx.fillna(pd.NaT)。问题在于数据框太大,无法搜索单个列。
另一种方法是使用pd.to_datetime(col, errors='coerce'),但是这将强制转换为datetime包含数值的许多列。
我也可以做df.fillna(float('nan'), inplace=True),尽管包含日期的列仍然是object类型,并且仍然会有相同的问题。
我可以采用哪种方法将那些其值确实包含datetime值但也可能包含None,以及可能包含一些无效值的列转换为日期时间(提及,否则pd.to_datetime在try/ except子句中使用a即可)?像是弹性版本pd.to_datetime(col)