我目前在我的应用程序中使用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;
}
例如:
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
答案 0 :(得分:5)
您可以使用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);
}
答案 1 :(得分:0)