例如,如果我有字符串时间戳
2022-01-12T19:41:27.000+00:00
,我想得到2022-01-12T19:41:27.000Z
。
我想确保我提供一个解决方案,将来可以采用格式“yyyy-mm-dd'T'HH:mm:ss.SSS+ZZ:ZZ”或任何其他输入格式的字符串时间戳,但将始终返回一个标准输出,即“yyyy-mm-dd'T'HH:mm:ss.SSSZ”。
到目前为止,我想出了:
String ts = "2022-01-12T19:41:27.000+00:00";
Date date = new SimpleDateFormat("yyyy-mm-dd'T'HH:mm:ss.SSS+ZZ:ZZ",
Locale.US).parse(ts);
System.out.println(date);
Timestamp tsp = new Timestamp(date.getTime());
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-mm-dd'T'HH:mm:ss.SSSZ");
String str = formatter.format(tsp);
System.out.println(str);
但是我遇到了以下异常:
error: unreported exception ParseException; must be caught or declared to be thrown
Date date = new SimpleDateFormat("yyyy-mm-dd'T'HH:mm:ss.SSS+ZZ:ZZ", Locale.US).parse(ts);
您的代码周围需要一个
try
- catch
块:
try {
String ts = "2022-01-12T19:41:27.000+00:00";
Date date = new SimpleDateFormat("yyyy-mm-dd'T'HH:mm:ss.SSS+ZZ:ZZ",
Locale.US).parse(ts);
System.out.println(date);
Timestamp tsp = new Timestamp(date.getTime());
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-mm-dd'T'HH:mm:ss.SSSZ");
String str = formatter.format(tsp);
System.out.println(str);
} catch (ParseException e){
// handleException
}
或者你必须扩展你的方法
throws ParseException