Итак, я использую Date.toLocaleString(), чтобы получить время в определенном часовом поясе, но столкнулся с проблемой: он возвращает два разных формата даты на двух разных ОС.
let currentTimeInSGT = new Date().toLocaleString('SG', {
timeZone: 'Asia/Singapore',
hour12: false
})
console.info(currentTimeInSGT)В окнах он возвращается
7/18/2019, 19:19:32
В убунту возвращается
18/07/2019, 19:19:32
оба они протестированы на хроме, а также значение между браузерами также различается, firefox и хром также дают разные форматы
Как я могу получить согласованный формат даты и времени?
Предполагается, что «SG» означает Сингапур? SG — язык санго. Вместо этого вам нужен «язык-локаль», например. "en-sg".
@JJJ, но все же, почему я получаю разные результаты, когда использую в одном и том же браузере разные ОС, есть идеи,
Потому что вы не указали локаль, только язык.
@JJJ omg действительно глупая ошибка, спасибо, приятель, за твое время и помощь :)



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


localeString использует системные настройки, чтобы определить, в каком формате он должен быть возвращен, каждый метод, отмеченный локалью, будет показывать это поведение в Javascript.
Вы можете использовать toISOString для последовательного преобразования даты в строки.
Обновлено: не видел тег java script
Вместо того, чтобы использовать sg в качестве локали, вам, вероятно, следует использовать en-SG, как это, кажется, принятый шаблон.
Это дало одинаковые результаты во всех браузерах, которые я проверял. (Хром, Фаерфокс, Край)
let currentTimeInSGT = new Date().toLocaleString('en-SG', {
timeZone: 'Asia/Singapore',
hour12: false
})
console.info(currentTimeInSGT)Спасибо за ответ :) Можете ли вы сказать мне ОС, на которой вы тестировали?
Windows 10 Корпоративная / версия 1903 / сборка ОС 18362.175
является ли «sg» допустимой локалью? Если он недействителен, я думаю, что он использует настройки по умолчанию, отсюда и несоответствие