web-dev-qa-db-ja.com

インスタントを日付形式に変換する方法は?

Java.util.DateJava.time.Instant (Java 8以降)にこのように変換できます:

Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, 8);
cal.set(Calendar.MINUTE, 30);
Date startTime = cal.getTime();
Instant i = startTime.toInstant();

特定の日付と時刻の形式で、そのインスタントを日付に変換することを誰にも教えてもらえますか?つまり、2015-06-02 8:30:00

私はAPIを試しましたが、満足のいく答えを見つけることができませんでした。

60
hari m

InstantDateに変換する場合:

Date myDate = Date.from(instant);

そして、あなたはあなたの質問のフォーマット部分にSimpleDateFormatを使用できます:

SimpleDateFormat formatter = new SimpleDateFormat("dd MM yyyy HH:mm:ss");
String formattedDate = formatter.format(myDate);
145

インスタントとは、特定の瞬間-日時という概念がありません(ニューヨークと東京の時刻は特定の瞬間では同じではありません)。

日付/時刻として印刷するには、最初に使用するタイムゾーンを決定する必要があります。例えば:

System.out.println(LocalDateTime.ofInstant(i, ZoneOffset.UTC));

これは、日付/時刻をiso形式で出力します:2015-06-02T10:15:02.325

別のフォーマットが必要な場合は、フォーマッターを使用できます。

LocalDateTime datetime = LocalDateTime.ofInstant(i, ZoneOffset.UTC);
String formatted = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss").format(datetime);
System.out.println(formatted);
11
assylias

try解析とフォーマット

例を挙げてくださいParsing

String input = ...;
try {
    DateTimeFormatter formatter =
                      DateTimeFormatter.ofPattern("MMM d yyyy");
    LocalDate date = LocalDate.parse(input, formatter);
    System.out.printf("%s%n", date);
}
catch (DateTimeParseException exc) {
    System.out.printf("%s is not parsable!%n", input);
    throw exc;      // Rethrow the exception.
}

書式設定

ZoneId leavingZone = ...;
ZonedDateTime departure = ...;

try {
    DateTimeFormatter format = DateTimeFormatter.ofPattern("MMM d yyyy  hh:mm a");
    String out = departure.format(format);
    System.out.printf("LEAVING:  %s (%s)%n", out, leavingZone);
}
catch (DateTimeException exc) {
    System.out.printf("%s can't be formatted!%n", departure);
    throw exc;
}

到着時間と出発時間の両方を出力するこの例の出力は次のとおりです。

LEAVING:  Jul 20 2013  07:30 PM (America/Los_Angeles)
ARRIVING: Jul 21 2013  10:20 PM (Asia/Tokyo)

詳細については、このページを確認してください- https://docs.Oracle.com/javase/tutorial/datetime/iso/format.html

1
Saket Mittal