我有办法将包含世纪的日期格式化为通用格式。 格式化日期为cyymmdd至MM / dd / yyyy。
实施例,
Convert 1140711 to o7/11/2014
答案 0 :(得分:1)
如果您正在谈论以格式转换字符串:
1140711
到
2014年7月11日
DateFormat df1 = new SimpleDateFormat("yyddMM");
DateFormat df2 = new SimpleDateFormat("dd/MM/yyyy");
String dateString = "1140711";
System.out.println(df2.format(df1.parse(dateString.substring(1, dateString.length()))));
答案 1 :(得分:0)
据我所知,唯一能够处理世纪领域的日期时间库是Joda-Time。
LocalDate date = DateTimeFormat.forPattern("CyyMMdd").parseLocalDate("1140711");
System.out.println("Century=" + date.getCenturyOfEra()); // 20
String usFormat = DateTimeFormat.forPattern("MM/dd/yyyy").print(date);
System.out.println(usFormat); // output: 07/11/2014
正如您所看到的那样,世纪的输入数字“1”被忽略,因为Joda-Time仅将其他字段评估为有效日期。我个人会拒绝这样一个世纪的输入,因为我们是21世纪的世纪,而不是1世纪。所以Joda-Time在这里有其局限,但你真的确定你的输入中有一个世纪的1,或者这只是一个错字吗?