15

私のコード:

print DateTime->now;

応答:

2012-08-17T20:16:37

なぜTがあるのですか?忘れてしまったオプションはありますか?

4

4 に答える 4

26

これは、時間Tを区切るための単なる標準(ISO 8601)の方法です。別の形式を使用するには、またはを使用することを検討してください。strftimeformat_cldr

たとえば、代わりにスペースを使用するには、を使用しますDateTime->now->format_cldr("YYYY-MM-dd hh:mm:ss")

于 2012-08-17T20:28:34.617 に答える
4

DateTimeコンストラクターでフォーマッターを指定していない限り、オブジェクトの文字列化にはISO8601形式が使用されます。ドキュメントのフォーマッタと文字列化を参照してください。iso8601方法は次のとおりです。

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

これは、 DateTimeが生成するデフォルトの出力形式であるISO-8601です。他のものが必要な場合は、strftimeorformat_cldrメソッドまたはDateTime::Format::*モジュールの1つを使用して、別の形式を出力する必要があります。例:

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 に答える