如何将即时转换为日期格式?

2022-08-31 08:04:53

我可以通过以下方式将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();

任何人都可以让我知道使用特定日期和时间格式将该瞬间转换为日期吗?即 2015-06-02 8:30:00

我已经通过api,但找不到满意的答案。


答案 1

如果要将 a 转换为 :InstantDate

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);