R 如何从该字符串中检索POSIX时间戳?

R 如何从该字符串中检索POSIX时间戳?,r,posixct,R,Posixct,我有如下字符串: "{u'iso': u'2015-05-12T12:43:17.512Z', u'__type': u'Date'}" time_format_string = "{u'iso': u'%Y-%m-%dT%H:%M:%S', u'__type': u'Date'}" strptime(test_string, time_format_string) 我想把它们转换成时间。我尝试了以下方法: "{u'iso': u'2015-05-12T12:43:17.512Z', u'_

我有如下字符串:

"{u'iso': u'2015-05-12T12:43:17.512Z', u'__type': u'Date'}"
time_format_string = "{u'iso': u'%Y-%m-%dT%H:%M:%S', u'__type': u'Date'}"
strptime(test_string, time_format_string)
我想把它们转换成时间。我尝试了以下方法:

"{u'iso': u'2015-05-12T12:43:17.512Z', u'__type': u'Date'}"
time_format_string = "{u'iso': u'%Y-%m-%dT%H:%M:%S', u'__type': u'Date'}"
strptime(test_string, time_format_string)
这将返回一个
NA
,没有错误消息。我做错了什么?

在格式字符串的秒数之后,您省略了
“Z”
。但是,如果添加
“Z”
,结果仍然是
NA
,这可能是因为您有小数秒,并且使用
“%S”
而不是
“%OS”

无论如何,这是很容易避免的,因为您不需要在上次所需的组件之后在格式字符串中指定任何内容(请参阅
?strtime
中的详细信息:“根据指定的格式处理每个输入字符串:忽略任何尾随字符”)

如果要保留小数秒,应使用
“%OS”
而不是
“%S”
。您还应该显式设置时区,以避免在计算机的本地时区中解析时间。我将时区设置为
“UTC”
,因为秒后的
“Z”
最有可能代表时区

time_format_string = "{u'iso': u'%Y-%m-%dT%H:%M:%OS"
strptime(test_string, time_format_string, tz="UTC")
#[1] "2015-05-12 12:43:17.512 UTC"