私は、文字列私はこの文字列の日付形式は何ですか?
new Date().parse('dd/mm/yyyy', dateString)
で使用しようとしている
2017-03-01T10:15:41-0800
として次の日付を持っているしかし、私はフォーマットを把握することはできません。
私は、文字列私はこの文字列の日付形式は何ですか?
new Date().parse('dd/mm/yyyy', dateString)
で使用しようとしている
2017-03-01T10:15:41-0800
として次の日付を持っているしかし、私はフォーマットを把握することはできません。
あなたdateString
と日付形式が一致していけない、それを試してみてください。 Groovyのスタイル:
def dateString = "2017-03-01T10:15:41-0800"
new Date().parse("yyyy-MM-dd'T'HH:mm:ssZ", dateString)
結果:あなたは日付書式パターンの詳細については、hereを参照することができ
Wed Mar 01 21:15:41 EAT 2017
。
はSimpleDateFormat
の使用を検討してください:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
class Main {
public static void main(String[] args) {
try {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ssX");
Date parsed = format.parse("2017-03-01T10:15:41-0800");
} catch (ParseException e){
e.printStackTrace();
}
}
}
日クラスは、独自のを含んで、静的解析方法(JB Nizetは、あなたの質問に彼のコメントで間違っていました)。
あなたは、一度だけこの解析を実行するだけで、このメソッドを使用する場合、詳細はhttp://docs.groovy-lang.org/latest/html/groovy-jdk/java/util/Date.html#parse(java.lang.String,%20java.lang.String)
ので、参照してください。一方
、あなたがこのような変換に複数回を実行することを計画している場合、 は、複数回てSimpleDateFormatインスタンス(1回) を作成し、それを使用する方が効率的です。
あなたができれば、あなたは、Java 8にしている、java.util.Date
を回避し、新しいjava.time
クラスのいずれかにそれを解析:UTC:あなたはその後、別のゾーン(すなわちでこの時間をしたい場合は
import java.time.*
import java.time.format.DateTimeFormatter
def dateString = "2017-03-01T10:15:41-0800"
def date = OffsetDateTime.parse(dateString,
DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssZ"))
)、次の操作を実行できます。
def utcDate = date.atZoneSameInstant(ZoneOffset.UTC)
Dateクラスには、このような解析メソッドはありません。 Java Stringは二重引用符で囲まれています。そのコードはコンパイルできません。パターンは明らかにあなたが与えているパターンではありません。 Googleの "Javaで日付を解析する方法"あなたは関連する結果がたくさんあります。 –
@JBNizetこれは、間違っている可能性があります。それは有効なグルーヴィーです。 – weston
@ user304966これは実際には面白い質問ですか? – weston