Với đầu vào của bạn của 2014-09-17T12:00:44.0000000Z
, nó không phải là đủ để thoát khỏi thư T
chỉ. Bạn cũng phải xử lý dấu vết Z
. Nhưng lưu ý rằng, điều này Z
KHÔNG phải là một chữ, nhưng có ý nghĩa của UTC+00:00
bù đắp múi giờ theo ISO-8601-standard
. Vì vậy, thoát Z
là không chính xác.
SimpleDateFormat
xử lý char đặc biệt này Z
theo biểu tượng mẫu X
. Vì vậy, giải pháp cuối cùng trông giống như:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSSX");
Date d = sdf.parse("2014-09-17T12:00:44.0000000Z");
System.out.println(d); // output: Wed Sep 17 14:00:44 CEST 2014
Lưu ý rằng thời gian đồng hồ khác nhau phù hợp với múi giờ CEST
(toString()
sử dụng hệ thống múi giờ), và kết quả là tương đương với UTC-time 12:00:44
. Hơn nữa, tôi đã phải chèn bảy ký hiệu S để xử lý chính xác đầu vào của bạn mà giả vờ có độ chính xác xuống 100ns
(mặc dù Java trước 8 chỉ có thể xử lý mili giây).
Nguồn
2014-10-16 07:52:18
Làm cách nào để phân tích cú pháp? –
current_date = formatter.parse (ngày) – mbezunartea
Thêm đối tượng định dạng cũng vào đây –