3 回答
TA贡献1911条经验 获得超7个赞
若要获取当前系统区域设置的 ,可以使用日期时间格式化程序。DateTimeFormatter
该参数控制是要长表示还是短表示(公元 1952 年 4 月 12 日星期二下午 3:30:42 PST 与 12.13.52 3:30pm)。FormatStyle
一些例子以及我在本地系统上得到的东西:
//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())
TA贡献1895条经验 获得超3个赞
你不能只用 Java API 来做到这一点。系统日期时间格式是特定于操作系统的,Java 没有 API 来读取该格式(您可以读取日期时间和语言环境,但不能读取格式)。你必须找到一些库来做它或自己编写它 - 但要注意,对于每个操作系统来说,这将有很大的不同。
要获取区域设置,请执行以下操作:Locale.getDefault()
从区域设置中,在大多数情况下,您可能可以采用该格式(但如果用户选择了非典型格式,则不会)。
TA贡献1794条经验 获得超8个赞
您只能以毫秒为单位询问系统当前时间。然后,您可以将它们转换为日期时间:
long timestamp = System.currentTimeMillis();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
Date date = new Date(timestamp);
System.out.println(dateFormat.format(date));
添加回答
举报