我有一些客户端代码,它使用反应-在用户定义的语言和区域(区域性/区域设置)中显示货币、语言和日期时间值。除了这些要求之外,我想在使用长日期和时间格式(例如)时显示时区缩写。2016年2月8日,格林尼治时间15:02 )。
为了做到这一点,我尝试使用力矩时区模块,它似乎做了正确的事情,孤立地。但是,我发现在我的应用程序中,使用了react,同一行代码生成正确的数据,但格式却是错误的。
document.write(moment(Date()).tz("Europe/London").format('LLL z'));预计:2016年2月8日20:57格林尼治标准时间
实战:2016年2月8日晚上9:04格林尼治时间
我的猜测是,这与这样一个事实有关,即我现在没有直接加载en-US本地程序,因为如果使用以下类型的代码,会自动为我加载作为react intl库的一部分。
addLocaleData(en);
var intlData = {
"locales": ["en-US", "en-GB"],
"formats": {
"date": {
"short": {
"day": "numeric",
"month": "long",
"year": "numeric"
},
"longdatetime": {
"day": "numeric",
"month": "long",
"year": "numeric",
"hour": "numeric",
"minute": "numeric"
}
},
"time": {
"hhmm": {
"hour": "numeric",
"minute": "numeric"
}
}
}
};
const provider = <IntlProvider locale="en-GB" {...intlData}><MyApp /></IntlProvider>;相关信息:
发布于 2016-02-09 02:56:57
作为一种临时解决方法,我发现我可以特别地为时区设置,就像这样。
import moment from 'moment-timezone'
moment.locale('en-GB');https://stackoverflow.com/questions/35279594
复制相似问题