非英语语言环境中的DateTimeFormat转换问题

时间:2017-04-20 12:21:15

标签: java localization datetime-format

我有一个下面的代码,它在我的Java应用程序中进行日期转换。

import com.google.gwt.i18n.client.DateTimeFormat;    

DateTimeFormat df = DateTimeFormat.getFormat("dd-MMM-YYYY HH:mm");
    String val = df.format("Sat Apr 01 2017 01:30:00 GMT+0530 (India Standard Time)
    ");
    println( "val" );

如果应用程序以英语语言环境启动 控制台有:“01-Apr-2017 01:30”

但如果是德语或法语语言环境 控制台有:“01-Apr.-2017 01:30”

任何人都知道为什么附加点(。)即将到来。

1 个答案:

答案 0 :(得分:0)

当地文化规范

Locale指定了两件事:

  • 用于翻译月份名称和日期名称的人类语言等。
  • 用于缩写,标点符号和演示项目顺序的文化规范。

您指定了Locale,其中文化规范是将一个FULL STOP附加到缩写的月份名称。

避免遗留日期时间类

你正在使用麻烦的旧日期时间类,现在是旧的,取而代之的是java.time类。

搜索DateTimeFormatter.ofLocalized的堆栈溢出。