如何在Java中获取系统日期和时间格式?

时间:2019-04-02 06:31:41

标签: java datetime-format systemtime

我正在尝试读取Java中的当前系统日期和时间格式,但是经过分析,我找不到与此有关的任何方法,所以任何人都可以帮我解决。这就是我想从Java中读取的内容。

3 个答案:

答案 0 :(得分:0)

您只能以毫秒为单位询问系统当前时间。然后可以将它们转换为DateTime:

long timestamp = System.currentTimeMillis();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");    
Date date = new Date(timestamp);
System.out.println(dateFormat.format(date));

答案 1 :(得分:0)

仅凭Java API不能做到这一点。系统日期时间格式是特定于操作系统的,并且Java没有API可以读取该格式(您可以读取日期时间和语言环境,但不能读取格式)。您将必须找到一个可以执行此操作或自己编写的库-但是请注意,对于每个操作系统,这都将有很大的不同。例如。对于Windows,您可能必须阅读Windows注册表。

要获取语言环境:Locale.getDefault()

在大多数情况下,您可以从语言环境中假定格式(但如果用户选择了非典型格式,则不能这样做)。

答案 2 :(得分:0)

要获取当前系统区域设置的DateTimeFormatter,可以使用DateTimeFormatter.ofLocalizedDateTime()

FormatStyle参数控制您是要长表示还是短表示(1952年4月12日,星期二,太平洋标准时间下午3:30:42,而下午12.13.52 3:30)。


一些示例以及我在本地系统上获得的内容:

//Tuesday, 2 April 2019 at 5:49:39 pm Australian Eastern Daylight Time
DateTimeFormatter.ofLocalizedDateTime(FormatStyle.FULL).format(ZonedDateTime.now())

//2 April 2019 at 5:50:20 pm AEDT
DateTimeFormatter.ofLocalizedDateTime(FormatStyle.LONG).format(ZonedDateTime.now())

//2/4/19, 5:50 pm
DateTimeFormatter.ofLocalizedDateTime(FormatStyle.SHORT).format(ZonedDateTime.now())