2

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

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

输出:

安卓:Mi., 24 Jul 2013 12:33:12 +0200

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

在服务器端,它抛出解析异常,知道吗?

4

2 回答 2

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 中

于 2013-07-24T10:54:30.427 回答
2

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

于 2013-08-01T19:14:36.920 回答