我的代码:
print DateTime->now;
响应:
2012-08-17T20:16:37
为什么有T?有没有我忘记的选择?
答案 0 :(得分:20)
T
只是划分时间的标准(ISO 8601)方式。要使用其他格式,请考虑使用strftime
或format_cldr
。
例如,要改为使用空格,请使用DateTime->now->format_cldr("YYYY-MM-dd hh:mm:ss")
。
答案 1 :(得分:4)
对DateTime
对象进行字符串化使用ISO 8601格式,除非您在构造函数中指定了格式化程序。请参阅文档中的Formatters and Stringification。
iso8601
方法是:
sub iso8601 { join 'T', $_[0]->ymd('-'), $_[0]->hms(':') }
答案 2 :(得分:2)
这是默认输出格式DateTime,ISO-8601。如果您需要其他内容,则需要使用strftime
或format_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?以可合成的方式讨论日期/时间。