日期时间字符串,如" 2018-04-01 10:00:00"可用于使用此Kotlin代码创建Date对象:
val format = SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
val d : Date = format.parse("2018-04-01 10:00:00") // works fine
但是如何用这样的偏移量解析日期时间字符串:
2018-04-01 10:00:00+02 // GMT + 2 hours
2018-04-01 10:00:00+02:30 // GMT + 2 hours, 30 minutes
2018-04-01 10:00:00+0230 // GMT + 2 hours, 30 minutes
Java 8:Instant不是一个选项。
编辑:
我已经尝试了这个建议并使用了' x' X'' z'和' Z',' XXX'有和没有领先空间。编译好。实例化SimpleDateFormat时x版本崩溃 - 似乎在使用的android api级别中不受支持:
// java.lang.IllegalArgumentException: Unknown pattern character 'X'
var formatter3 = SimpleDateFormat("yyyy-MM-dd HH:mm:ssX")
// java.lang.IllegalArgumentException: Unknown pattern character 'x'
var formatter4 = SimpleDateFormat("yyyy-MM-dd HH:mm:ssx")
// java.lang.IllegalArgumentException: Unknown pattern character 'x'
var formatter5 = SimpleDateFormat("yyyy-MM-dd HH:mm:ss x")
z版本:
val formatter = SimpleDateFormat("yyyy-MM-dd HH:mm:ssZ")
or
val formatter = SimpleDateFormat("yyyy-MM-dd HH:mm:ssz")
val date = formatter.parse("2018-04-24 17:33:02+02")
似乎有效。
@Andreas:日期时间解析是一个痛苦的屁股。而不是低估问题,一行简单的代码会更有帮助
答案 0 :(得分:0)
可以使用Z
(RFC 822)或X
(ISO 8601)解析时区,请参阅https://developer.android.com/reference/java/text/SimpleDateFormat