具体来说,我的代码简化为:
from datetime import datetime
date_string = '2009-11-29 03:17 PM'
format = '%Y-%m-%d %H:%M %p'
my_date = datetime.strptime(date_string, format)
# This prints '2009-11-29 03:17 AM'
print my_date.strftime(format)
Run Code Online (Sandbox Code Playgroud)
是什么赋予了?Python在解析日期时是否忽略了句点说明符,还是我做了一些愚蠢的事情?
请考虑以下事项
$ R --vanilla
> as.Date("01 Jan 2000")
Error in charToDate(x) :
character string is not in a standard unambiguous format
Run Code Online (Sandbox Code Playgroud)
但是那个日期显然是标准的明确格式.为什么出现错误信息?
更糟糕的是,一个模棱两可的日期显然是在没有警告或错误的情况下被接受的,然后读错了!
> as.Date("01/01/2000")
[1] "0001-01-20"
Run Code Online (Sandbox Code Playgroud)
我搜索过并在包含此错误消息的[R]标签中发现了28个其他问题.所有涉及指定格式的解决方案和解决方法,iiuc.这个问题的不同之处在于,我在问无论如何定义标准的明确格式,它们可以改变吗?每个人都得到这些消息还是仅仅是我?也许它与语言环境有关?
换句话说,有没有比需要指定格式更好的解决方案?
> sessionInfo()
R version 2.15.2 (2012-10-26)
Platform: x86_64-w64-mingw32/x64 (64-bit)
locale:
[1] LC_COLLATE=English_United Kingdom.1252
[2] LC_CTYPE=English_United Kingdom.1252
[3] LC_MONETARY=English_United Kingdom.1252
[4] LC_NUMERIC=C
[5] LC_TIME=English_United Kingdom.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
Run Code Online (Sandbox Code Playgroud) 我如何使用strptime或任何其他函数来解析R中的毫秒时间戳?
time[1]
# [1] "2010-01-15 13:55:23.975"
strptime(time[1], format="%Y-%m-%d %H:%M:%S.%f")
# [1] NA
strptime(time[1], format="%Y-%m-%d %H:%M:%S")
# [1] "2010-01-15 13:55:23"`
Run Code Online (Sandbox Code Playgroud) 请问我的代码有什么问题:
import datetime
d = "2013-W26"
r = datetime.datetime.strptime(d, "%Y-W%W")
print(r)
Run Code Online (Sandbox Code Playgroud)
显示"2013-01-01 00:00:00",谢谢.
我有一个日期字符串,并希望将其转换为日期类型:
我试图使用datetime.datetime.strptime和我想要的格式,但它返回转换的时间.
when = alldates[int(daypos[0])]
print when, type(when)
then = datetime.datetime.strptime(when, '%Y-%m-%d')
print then, type(then)
Run Code Online (Sandbox Code Playgroud)
这是输出返回的内容:
2013-05-07 <type 'str'>
2013-05-07 00:00:00 <type 'datetime.datetime'>
Run Code Online (Sandbox Code Playgroud)
我需要删除时间:00:00:00.
我有三个日期格式:YYYY-MM-DD,DD.MM.YYYY,DD/MM/YYYY.
是否可以验证和解析字符串,如2014-05-18or 18.5.2014或18/05/2019?
我正在尝试初始化这样的时间对象:
t = datetime.time(0,0,0)
Run Code Online (Sandbox Code Playgroud)
但我收到这个错误:
descriptor 'time' requires a 'datetime.datetime' object but received a 'int'
Run Code Online (Sandbox Code Playgroud)
我有这些东西进口了
import datetime
from datetime import datetime, date, time
import time
Run Code Online (Sandbox Code Playgroud)
它们似乎有点多余,所以我想知道这是否是导致问题的原因
我也在使用strptime方法和combine方法
earliest = datetime.combine(earliest, t)
value = datetime.strptime(value, format)
Run Code Online (Sandbox Code Playgroud) 在哪里可以找到R函数的所有合法时间名称列表as.POSIXct?
as.POSIXct("1970-01-01",tz="CST") 生成"CST"(中央标准时间)未知的警告.
我有一个大多数正确的日期时间的数据库,但有一些像这样破了: Sat Dec 22 12:34:08 PST 20102015
没有无效年份,这对我有用:
end_date = soup('tr')[4].contents[1].renderContents()
end_date = time.strptime(end_date,"%a %b %d %H:%M:%S %Z %Y")
end_date = datetime.fromtimestamp(time.mktime(end_date))
Run Code Online (Sandbox Code Playgroud)
但是一旦我遇到一个无效年份的物体,我就会得到ValueError: unconverted data remains: 2,这很好,但我不确定如何最好地剥离一年中的坏人物.它们的范围从2到6 unconverted characters.
有什么指针吗?我只想切片,end_date但我希望有一个日期安全策略.
strptime许多语言库中都有一个函数(C,Python,Ruby,PHP,PERL等).
它似乎是基于Open Group的规范time.h.
我理解'str'代表字符串,'time'显然代表时间,但'p'代表什么?解析?指针?打印?
每次我到达strptime()函数时,我都有一个心理空白,并且必须在手册中查找名称.我想如果我最终弄清楚它代表什么,也许我有机会记住它.