Как преобразовать Мгновенный в формат даты?
Я могу преобразовать java.util.Date
в java.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();
Может ли кто-нибудь сообщить мне о конвертировании этого момента времени с конкретным форматом даты и времени? i.e 2015-06-02 8:30:00
Я прошел через api, но не смог найти удовлетворительного ответа.
Ответы
Ответ 1
Если вы хотите преобразовать Instant
в Date
:
Date myDate = Date.from(instant);
И затем вы можете использовать SimpleDateFormat
для части форматирования вашего вопроса:
SimpleDateFormat formatter = new SimpleDateFormat("dd MM yyyy HH:mm:ss");
String formattedDate = formatter.format(myDate);
Ответ 2
Мгновенное действие - это то, что он говорит: определенный момент времени - у него нет понятия даты и времени (время в Нью-Йорке и Токио не одинаково в данный момент).
Чтобы распечатать его как дату/время, вам сначала нужно решить, какой часовой пояс использовать. Например:
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);
Ответ 3
попробуйте Разбор и форматирование
Возьмем пример
Синтаксический
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
Ответ 4
Instant i = Instant.ofEpochSecond(cal.getTime);
Подробнее здесь и здесь