更改现有日期的格式

时间:2011-09-26 14:53:52

标签: autohotkey

我正在尝试将日期格式设置为2011-09-19

如果我执行以下操作:

leaveDate = "09/19/11"
FormatTime, fileDate, leaveDate, yyyy-MM-dd
MsgBox, %fileDate%

它只会获取当前日期和时间,因为我的输入日期格式无效。如何处理此09/19/11并将其转换为此2011-09-19

我已阅读docs,但找不到执行此操作的功能。我只是忽略它吗?

1 个答案:

答案 0 :(得分:1)

您的日期需要以YYYYMMDDHH24MISS格式提供。如果您的日期格式一致且所有年份都在2000之后,则使用SubStr()分隔日期的以下代码应该有效:

leaveDate := "09/19/11"

year := "20" . SubStr(leaveDate, 8, 2)
month := SubStr(leaveDate, 2, 2)
date := SubStr(leaveDate, 5, 2)
formattedTime := year . month . date

FormatTime, fileDate, %formattedTime%, yyyy-MM-dd
MsgBox, %fileDate%

在FormatTime a link is given to a forum topic的文档页面底部,给出了一个名为DateParse的函数的代码。此函数将以几乎任何格式显示日期并返回YYYYMMDDHH24MISS格式化的字符串,该字符串可用于代替SubStr()生成的字符串。

给出的例子是:

DateParse("2:35 PM, 27 November 2007")