我在中国的用户使用中文(简体)区域设置。当他们输入日期时,他们会按照通常的中文风格(yyyy / mm / dd)进行,但我的Java代理会将其读作yyyy / dd / mm。
例如," 2013/12/15" (2013年12月15日)将被解释为2013年第15个月的第12天,即2014年3月12日。
我正在使用
Item itm = dataDoc.getFirstItem("CAPublicationDate");
DateTime dt = itm.getDateTimeValue();
String adate = dt.getDateOnly();
int yyyy = Integer.parseInt(adate.substring(6));
int mm = Integer.parseInt(adate.substring(3,5));
int day = Integer.parseInt(adate.substring(0,2));
Calendar pubdate = Calendar.getInstance();
pubdate.set(yyyy, mm-1, day);
相关字段是时间/日期字段,在中文计算机上的Notes文档属性中,日期正确显示为" 2013/12/15",在我的英国机器上,它正确显示为& #34 15/12/2013年&#34 ;.它只是在java代理中被误解了。
有什么建议吗?
答案 0 :(得分:3)
使用.toJavaDate()返回java.util.Date对象,然后使用它。
示例:
Item itm = dataDoc.getFirstItem("CAPublicationDate");
DateTime dt = itm.getDateTimeValue();
Date javaDate = dt.toJavaDate();
Calendar pubdate = Calendar.getInstance();
pubdate.setTime(javaDate);