我目前在我的应用程序中使用joda dateTime Api.我使用以下代码将多种日期格式解析为一种格式.虽然格式没有一年,但我遇到了麻烦.目前它将年份定为"2000".
如果缺少年份,有没有办法将年份设置为默认值?
private static final DateTimeParser[] parsers = {
DateTimeFormat.forPattern("dd/MMM/yyyy:HH:mm:ss Z").getParser(),
DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss").getParser(),
DateTimeFormat.forPattern("[dd/MMM/yyyy:HH:mm:ss Z]").getParser(),
DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZ").getParser(),
DateTimeFormat.forPattern("MMM-dd HH:mm:ss,SSS").getParser()
};
public static DateTime ConvertDate(String timestamp) {
DateTimeFormatter formatter = new DateTimeFormatterBuilder().append(null, parsers).toFormatter();
DateTime date = formatter.parseDateTime(timestamp);
return date;
}
Run Code Online (Sandbox Code Playgroud)
例:
Mar-07 13:59:13,219
变
2000-03-07T12:59:13.219-07:00
我想要的是 :
例:
Mar-07 13:59:13,219
变
(currentyear)-03-07T12:59:13.219-07:00
你可以使用withDefaultYear():
public static DateTime convertDate(String timestamp) {
int stdYear = 1970; // example for new default year
DateTimeFormatter formatter =
new DateTimeFormatterBuilder().append(null, parsers).toFormatter()
.withDefaultYear(stdYear);
return formatter.parseDateTime(timestamp);
}
Run Code Online (Sandbox Code Playgroud)