【问题标题】:toLocaleDateString and toLocaleString methods does not respect the machines timezonetoLocaleDateString 和 toLocaleString 方法不尊重机器时区
【发布时间】:2016-05-18 15:11:25
【问题描述】:

我的电脑使用美国地区设置和日期格式以及 -8h GMT 时区,但我并不完全在美国地区。为什么通过 new Date 获取日期时,我可以看到时区偏移是正确的,但是当我尝试将其转换为 localedateString 时,我得到了真正的本地日期字符串?

var date = new Date();
///here date is (for example)  Mon Jan 15 2001 12:00:00 GMT-0800 (Pacific Standard Time)

var localeString = date.toLocateDateString();
///or date.toLocaleString()

/// localeString here comes in my real locale date format 15.01.2001 г or 15.01.2001 г., 12:00:00 when using toLocaleString()

【问题讨论】:

  • 我找到了答案。浏览器从浏览器当前使用的语言中获取日期格式。

标签: javascript date datetime


【解决方案1】:

toLocaleString 的输出完全依赖于实现,并且在当前使用的浏览器中不一致。它不一定尊重系统设置(例如,Chrome 不尊重我的系统设置的组件顺序),并且 ECMA-262 中没有要求这样做。

为了获得可靠的结果,请以明确的格式手动格式化输出,例如25 Feb 2017。库可以提供帮助,但如果您只需要一种格式,那么一个简单的函数就足够了。

【讨论】:

    猜你喜欢
    • 2011-06-14
    • 2013-03-22
    • 2011-11-23
    • 2016-10-20
    • 1970-01-01
    • 1970-01-01
    • 2011-03-28
    • 1970-01-01
    • 2016-01-10
    相关资源
    最近更新 更多