【问题标题】:How to use java7 to get current Windows time format如何使用java7获取当前Windows时间格式
【发布时间】:2014-02-21 10:31:20
【问题描述】:

目前,Windows 7 的显示语言和格式语言都是英文。所以短时间格式是“h:mm tt”

运行以下代码:

Date today = Calendar.getInstance().getTime();              
DateFormat timeFormatter =  DateFormat.getTimeInstance(DateFormat.SHORT, Locale.getDefault());
String dateOut = timeFormatter.format(today);
System.out.println("short: " + dateOut);

得到结果: 简短:上午 10:36

然后将短时间格式改为“H:mm”,再次运行代码,还是得到结果: 简短:上午 10:36 但我期望的是 短:10:36

而且我不想硬编码格式模式,它应该遵循短时间格式更改。

有人知道吗?非常感谢。

【问题讨论】:

  • 您的默认语言可能是en_US。 en_US 的 DateFormat.SHORT 始终是上午/下午。看看docs
  • 我的默认语言是 en_US,我知道 java 从 localedata.jar 中检索默认语言环境信息。但是有什么方法可以从 Win7 的“区域和语言选项”中获取自定义短格式?
  • 根据需要设置Locale
  • 我发现使用纯java是不可能的。但是我们可以参考 SWT DateTime 小部件的实现。link

标签: java time-format


【解决方案1】:

试试看:

Date today = Calendar.getInstance().getTime();
SimpleDateFormat dateFormat = new SimpleDateFormat("hh:mm");
String dateOut = dateFormat.format(today);
System.out.println("short: " + dateOut);

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-04-17
  • 2011-12-30
  • 2019-12-22
  • 1970-01-01
  • 2022-01-19
  • 2013-12-25
  • 1970-01-01
相关资源
最近更新 更多