15

我的代码:

print DateTime->now;

回复:

2012-08-17T20:16:37

为什么会有T?有没有我忘记的选项?

4

4 回答 4

26

T只是划定时间的标准(ISO 8601)方式。要使用不同的格式,请考虑使用strftimeor format_cldr

例如,要使用空格,请使用DateTime->now->format_cldr("YYYY-MM-dd hh:mm:ss").

于 2012-08-17T20:28:34.617 回答
4

DateTime除非您在构造函数中指定了格式化程序,否则对对象进行字符串化使用 ISO 8601 格式。请参阅文档中的格式化程序和字符串化。iso8601方法是:

sub iso8601 { join 'T', $_[0]->ymd('-'), $_[0]->hms(':') }
于 2012-08-17T20:30:28.507 回答
2

这是DateTime生成的默认输出格式ISO-8601。如果你想要别的东西,你需要使用strftimeorformat_cldr方法或其中一个DateTime::Format::*模块来输出不同的格式,例如:

print DateTime->now->format_cldr("YYYY-MM-dd hh:mm:ss");
于 2012-08-17T20:30:49.997 回答
0

这是日期和时间的 iso 标准,请参阅http://en.wikipedia.org/wiki/ISO_8601

参见例如您如何在 Perl 中读取系统时间和日期?讨论以可格式化的方式读取日期/时间。

于 2012-08-17T20:36:14.213 回答