德语区域设置的日期时间格式不一致

时间:2013-07-24 10:44:12

标签: java android datetime

以下代码在Android和标准jdk中生成不同的输出

    final DateFormat df = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z",
    Locale.GERMAN);
    final String today = df.format(new Date());

输出:

Android:Mi., 24 Jul 2013 12:33:12 +0200

标准jdk:Mi, 24 Jul 2013 12:33:12 +0200

在服务器端,它正在抛出解析异常,任何想法?

2 个答案:

答案 0 :(得分:3)

我可以建议一个解决方法:

    SimpleDateFormat df = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z",
            Locale.GERMAN);
    DateFormatSymbols dfs = df.getDateFormatSymbols();
    String[] swd = {"", "So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"};
    dfs.setShortWeekdays(swd);
    df.setDateFormatSymbols(dfs);

现在它会将日期格式化为

Mi, 24 Jul 2013 12:33:12 +0200
标准Java和Android中的

答案 1 :(得分:2)

使用标准UTC日期时间格式。并非所有语言环境都受JDK支持。所以使用Locale.US是安全的,在通过平台交换数据时特别有用。