需要将此字符串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));
你需要三个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
不保存时区信息。