Sha*_*mik 6 java solr date date-format
我有一个要求,在将日期索引到Solr之前,可以使用以下格式传递日期.以下是传递日期的示例
String dateStr = "2012-05-23T00:00:00-0400";
String dateStr1 = "May 24, 2012 04:57:40 GMT";
String dateStr2 = "2011-06-21";
Run Code Online (Sandbox Code Playgroud)
标准的Solr格式是"yyyy-MM-dd'T'HH:mm:ss'Z'".
我尝试过SimpleDateFormat,但是无法编写支持各种格式的通用程序.它最终会抛出解析异常.
我也尝试过joda时间,但到目前为止还没有成功进行UTC转换.
public static String toUtcDate(final String iso8601) {
DateTime dt = ISO_PARSE_FORMAT.parseDateTime(iso8601);
DateTime utcDt = dt.withZone(ZONE_UTC);
return utcDt.toString(ISO_PRINT_FORMAT);
}Run Code Online (Sandbox Code Playgroud)
是否有标准库来实现这一目标?
任何指针将不胜感激.
谢谢
Boh*_*ian 12
我只是尝试各种格式,直到我受到欢迎:
public static String toUtcDate(String dateStr) {
SimpleDateFormat out = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
// Add other parsing formats to try as you like:
String[] dateFormats = {"yyyy-MM-dd", "MMM dd, yyyy hh:mm:ss Z"};
for (String dateFormat : dateFormats) {
try {
return out.format(new SimpleDateFormat(dateFormat).parse(dateStr));
} catch (ParseException ignore) { }
}
throw new IllegalArgumentException("Invalid date: " + dateStr);
}
Run Code Online (Sandbox Code Playgroud)
我不知道有一个库可以做到这一点.