Hầu như mọi phương thức ISO trên web đều giảm thông tin múi giờ bằng cách áp dụng chuyển đổi thành "Z" ulu time (UTC) trước khi xuất chuỗi. Trình duyệt .toISOString () của trình duyệt cũng giảm thông tin múi giờ.
Điều này loại bỏ thông tin có giá trị, như máy chủ hoặc người nhận, luôn có thể chuyển đổi ngày ISO đầy đủ thành thời gian Zulu hoặc bất kỳ múi giờ nào yêu cầu, trong khi vẫn nhận được thông tin múi giờ của người gửi.
Giải pháp tốt nhất tôi gặp phải là sử dụng thư viện javascript của Moment.js và sử dụng mã sau:
Để có được thời gian ISO hiện tại với thông tin múi giờ và mili giây
now = moment().format("YYYY-MM-DDTHH:mm:ss.SSSZZ")
// "2013-03-08T20:11:11.234+0100"
now = moment().utc().format("YYYY-MM-DDTHH:mm:ss.SSSZZ")
// "2013-03-08T19:11:11.234+0000"
now = moment().utc().format("YYYY-MM-DDTHH:mm:ss") + "Z"
// "2013-03-08T19:11:11Z" <- better use the native .toISOString()
Để có được thời gian ISO của đối tượng Ngày JavaScript gốc với thông tin múi giờ nhưng không có mili giây
var current_time = Date.now();
moment(current_time).format("YYYY-MM-DDTHH:mm:ssZZ")
Điều này có thể được kết hợp với Date.js để có được các hàm như Date.today () có kết quả có thể được chuyển đến thời điểm này.
Một chuỗi ngày được định dạng như thế này là trình biên dịch JSON và tự cho vay tốt để được lưu trữ vào cơ sở dữ liệu. Python và C # có vẻ thích nó.