Почти каждый метод преобразования в ISO в Интернете удаляет информацию о часовом поясе, применяя преобразование ко времени ulu «Z» (UTC) перед выводом строки. Собственная функция браузера .toISOString () также удаляет информацию о часовом поясе.
Это отбрасывает ценную информацию, поскольку сервер или получатель всегда может преобразовать полную дату ISO во время Zulu или в любой другой часовой пояс, который ему требуется, при этом получая информацию о часовом поясе отправителя.
Лучшее решение, с которым я столкнулся, - использовать JavaScript Moment.js. библиотеку и используйте следующий код:
Чтобы получить текущее время ISO с информацией о часовом поясе и миллисекундах
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()
Чтобы получить время ISO для собственного объекта JavaScript Date с информацией о часовом поясе, но без миллисекунд
var current_time = Date.now();
moment(current_time).format("YYYY-MM-DDTHH:mm:ssZZ")
Это можно комбинировать с Date.js, чтобы получить такие функции, как Date.today (), результат которых затем можно передать моменту.
Строка даты, отформатированная таким образом, является компилятором JSON и хорошо поддается хранению в базе данных. Кажется, это нравится Python и C #.
person
Daniel F
schedule
08.03.2013