为什么DateTime会在时间戳中添加T分隔符?

时间:2012-08-17 20:22:19

标签: perl datetime

我的代码:

print DateTime->now;

响应:

  

2012-08-17T20:16:37

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

4 个答案:

答案 0 :(得分:20)

T只是划分时间的标准(ISO 8601)方式。要使用其他格式,请考虑使用strftimeformat_cldr

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

答案 1 :(得分:4)

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

sub iso8601 { join 'T', $_[0]->ymd('-'), $_[0]->hms(':') }

答案 2 :(得分:2)

这是默认输出格式DateTime,ISO-8601。如果您需要其他内容,则需要使用strftimeformat_cldr方法或其中一个DateTime::Format::*模块输出不同的格式,例如:

print DateTime->now->format_cldr("YYYY-MM-dd hh:mm:ss");

答案 3 :(得分:0)

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

参见例如How do you read the system time and date in Perl?以可合成的方式讨论日期/时间。