0

我发现在使用 DateFormat 解析日期时丢失了特定于语言环境的设置。

 DateFormat date1 = DateFormat.getDateInstance(DateFormat.LONG,Locale.ITALY);// Long
    Date datE = date1.parse("13 settembre 2013", pp1);
    System.err.println("datE is: "+datE);

这是我得到的未本地化的输出:date 34 is: Fri Sep 13 00:00:00 CEST 2013 有没有办法让它持久化?(期待意大利语格式的日期是合乎逻辑的)

4

2 回答 2

1

该类Date具有内部日期格式。

public String toString() {
    // "EEE MMM dd HH:mm:ss zzz yyyy";
    BaseCalendar.Date date = normalize();
    StringBuilder sb = new StringBuilder(28);
    int index = date.getDayOfWeek();
    if (index == gcal.SUNDAY) {
        index = 8;
    }
    convertToAbbr(sb, wtb[index]).append(' ');                        // EEE
    convertToAbbr(sb, wtb[date.getMonth() - 1 + 2 + 7]).append(' ');  // MMM
    CalendarUtils.sprintf0d(sb, date.getDayOfMonth(), 2).append(' '); // dd

    CalendarUtils.sprintf0d(sb, date.getHours(), 2).append(':');   // HH
    CalendarUtils.sprintf0d(sb, date.getMinutes(), 2).append(':'); // mm
    CalendarUtils.sprintf0d(sb, date.getSeconds(), 2).append(' '); // ss
    TimeZone zi = date.getZone();
    if (zi != null) {
        sb.append(zi.getDisplayName(date.isDaylightTime(), zi.SHORT, Locale.US)); // zzz
    } else {
        sb.append("GMT");
    }
    sb.append(' ').append(date.getYear());  // yyyy
    return sb.toString();
}

DateFormat用它解析它不会影响它。

通话

System.err.println("datE is: "+datE);

执行隐式调用引用类型的字符串连接toString(),即。datE.toString().

于 2013-09-13T17:52:58.397 回答
0

Dates 没有Locale。它们只是自纪元以来长毫秒的包装器。

于 2013-09-13T17:53:20.947 回答