给出的字符串:“2018-04-22T01:00:00-05:00”
所需格式:时间戳
代码来源:
import java.sql.Timestamp
import java.text.SimpleDateFormat
val dateStr : String = "2018-04-22T01:00:00-05:00"
val dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss'Z'")
val parsedDate = dateFormat.parse(dateStr)
val timestamp = new Timestamp(parsedDate.getTime)
但得到了错误:
[error] (run-main-12) java.text.ParseException: Unparseable date: "2018-04-22T01:00:00-05:00"
java.text.ParseException: Unparseable date: "2018-04-22T01:00:00-05:00"
at java.text.DateFormat.parse(DateFormat.java:366)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
注意:字符串中有一个“-05:00”,导致错误。
答案 0 :(得分:7)
Z
适用于-0800
等格式的时区。
您的模式中需要设置时区字母X
(它不应该有引号):
"yyyy-MM-dd'T'hh:mm:ssX"
此外,hh
是"上午/下午(1-12)"我猜你想要HH
吗?
"yyyy-MM-dd'T'HH:mm:ssX"