2016-03-23 2 views
1

時間に基づいて返された日付にテキストを追加します。のGroovyを使用して - 私はこのグルーヴィーなスクリプト実行しています

デフ自衛隊=新しいjava.text.SimpleDateFormatのを( "YYYY-MM-DD株式会社:MM:SS")

リターンsdf.format(新しいDate())

、それは私がしたい、戻り値の末尾が細かいです= 2016年3月23日午後4時54分39秒

を返します。次のように、午前または午後の時間に応じてスペースとAMまたはPMのいずれかを追加します。

AM時間が戻る= 2016年3月23日午前11時54分39秒AM PM時間が戻る= 2016年3月23日16時五十四分39秒PM

任意のアイデア?

+0

なぜ数時間kkを使用していますか? –

答えて

1

日付がフォーマットメソッドを持っていたので、groovyでさらに簡単です。

println new Date().format('yyyy-MM-dd HH:mm:ss a') 
+0

完璧なおかげで:-) – csman

3

あなたはAM/PMを追加したい場合は、日付フォーマッタパターンの末尾に 'A'(AM/PMマーカー)を追加することができます。これは、得られます

new java.text.SimpleDateFormat("yyyy-MM-dd kk:mm:ss a").format(new Date()) 

2016-03-23 18:05:20 PM 

SimpleDateFormatの詳細については、Java documentationを参照してください。

0

java.time

DateSimpleTextFormatクラスは今、後のJava 8とに組み込まれたjava.timeフレームワークによって時代遅れされています。

Instantはタイムライン上の瞬時でUTCで、nanosecondまでの解像度です。

Groovyの構文がわからないので、このアンサーのコードはJavaです。

Instant instant = Instant.now(); 

ZonedDateTimeを取得するためにタイムゾーンを適用します。

ZoneId zoneId = ZoneId.of("America/Montreal"); 
ZonedDateTime zdt = ZonedDateTime.ofInstant(instant , zoneId); 

フォーマットパターンを定義します。 DateTimeFormatterのこれらのコードは、SimpleDateFormatに似ていますが、まったく同じではありません。クラスの文書を勉強してください。

DateTimeFormatter formatter = DateTimeFormatter.ofPattern ("yyyy-MM-dd kk:mm:ss"); 

その特定のパターンで使用kkは一日の時間の代わりに、0-23(hh)に使用1-24を意味することに注意してください。

日時オブジェクトのテキスト表現として文字列を生成します。

String output = zdt.format(formatter); 
関連する問題