需要使用特定的日期格式将此字符串2017-08-01T15:43:45+0530
格式化为2017-08-01T15:43:45+05:30
。尝试过yyyy-MM-dd'T'HH:mm:ssZZ
。没有用..
Date modified = aemPage.getProperties().get(cq:lastModified, Date.class);
private DateFormat seoDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZZ");
String formattedDate = seoDateFormat.format(modified));
答案 0 :(得分:2)
您需要三个X
才能像这样下车
Sign TwoDigitHours : Minutes
如果您使用的是Java8或更高版本,我建议使用OffsetDateTime
:
String input = "2017-08-01T15:43:45+0530";
DateTimeFormatter parser = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssZ");
OffsetDateTime offsetDateTime = OffsetDateTime.parse(input, parser);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssXXX");
System.out.println(offsetDateTime.format(formatter)); // 2017-08-01T15:43:45+05:30
由于2017-08-01T15:43:45+05:30
是ISO_OFFSET_DATE_TIME
,因此您也可以使用:
String outPut = offsetDateTime.toString();
更新:
如果您想使用SimpleDateFormat
,请尝试:
String input = "2017-08-01T15:43:45+0530";
SimpleDateFormat parser = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
Date date = parser.parse(input);
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX");
System.out.println(formatter.format(date));
但这仅在系统的偏移量为0530
时有效,因为Date
不包含时区信息。