1

Joda 時間を使用する次のスニペットがあります。

import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;

DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern("HH z")
String dateTime = dateTimeFormatter.print(new DateTime())
println DateTime.parse(dateTime, dateTimeFormatter)

しかし、IllegalArgumentException がスローされます。

Invalid format: "16 EDT" is malformed at "EDT"

何が恋しいですか?

編集:素晴らしい作品DateTimeFormat.forPattern("HH")

4

2 に答える 2

3

DateTimeFormat javadocによると、タイム ゾーン名 ('z') は解析できません。

編集: タイムゾーンを解析するには、「Z」と実際のタイムゾーンオフセット(東部の場合は-0500)の使用を検討します。またwithOffsetParsed()、調べたい DateTimeFormatter のメソッドもあります。dateTimeFormatter.withOffsetParsed().parseDateTime("16 -0500");.

于 2012-06-07T20:53:30.640 に答える
0

問題は、EDT が有効な一意のタイム ゾーン名ではないことです。この点に関して、パーサーは非常に厳格です。EDT は、米国またはオーストラリアに適用できます。

于 2012-07-11T04:48:29.413 に答える