我发现在使用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
有没有办法让它持久? (合乎逻辑地期望意大利格式的日期)
答案 0 :(得分: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()
。
答案 1 :(得分:0)
Date
没有Locale
。从纪元开始,它们只是一个长时间的包装。