在朱莉娅,如果日期是96,我怎么能在DateTime中成为1996年?

时间:2016-06-14 06:26:05

标签: date datetime types format julia

我有一个包含日期字符串的数组。格式为" 2/27/16 3:47"所以" m-d-y H:M"。但是,DateTime将其解析为0016-27-02T03:47:00。我希望输出为:2016-27-2T03:47:00

我的代码是:

map(date-> DateTime(date, "mm/dd/yy HH:MM"), datsub[:date])

附带问题:输出类型变为Any。这是正确的类型还是DateTime或类似的东西?

1 个答案:

答案 0 :(得分:4)

正如@akrun所提到的,你应该自己添加年份:

Dates.Year(2000) + DateTime(date, "m/d/y H:M")

这更确切地说明了究竟发生了什么。否则,日期必须猜测像97这意味着什么:1997年或2097年,或实际年份[00] 97?

您可能想要在合适的年份提出合理的截止日期。您可以尝试以下方法:

expandyear(date::DateTime) = date + (Dates.year(date) < 25 ? Dates.Year(2000) : Dates.Year(1900))

你认为有意义的截止点。

带有map的返回类型的问题是已知的问题,已在最新的v0.5 nightlies中修复。 Julia v0.5可能会在不久的将来发布,可能会在几个月内发布。