我正在尝试格式化一个基于时区的
如何将JS时间转换成这些格式?
清华2015年9月24日14:00格林尼治时间-0700(PDT) “2015年9月24日,下午2:00,协调世界时-07:00” "2015-09-24 14:00格林尼治时间-0700“ “2015年9月24日格林尼治时间14:00-0700” 清华2015年9月24日14:00格林尼治时间-0700(太平洋夏令时间)
转换成任何一种都会有帮助。
发布于 2016-11-09 16:49:17
您可以使用format文档中列出的令牌,如下面的代码段所示。
使用方括号[]添加应该转义的字符(示例中的GMT和UTC,如果需要当前区域缩写,请使用z令牌)。
请注意,正如时区文件所说:
Moment.js还为长表单时区名称提供了一个钩子。由于这些字符串通常是本地化的,所以Timezone不为区域提供任何长名称。 要提供长表单名称,可以重写
moment.fn.zoneName并使用zz令牌。
您可以在片段中找到为区域提供长名称的示例。
var time = "2016-11-09 15:38:00", zone = "America/Chicago";
var m = moment.tz(time,zone);
console.log(m.format('ddd MMM D YYYY HH:mm:ss [GMT]ZZ (z)'));
console.log(m.format('MMMM Do YYYY, h:mm:ss a [UTC]ZZ'));
console.log(m.format('YYYY-MM-DD HH:mm:ss [GMT]ZZ'));
console.log(m.format('MMM D YYYY HH:mm:ss [GMT]ZZ'));
// Add long names for sample zones
var abbrs = {
EST : 'Eastern Standard Time',
EDT : 'Eastern Daylight Time',
CST : 'Central Standard Time',
CDT : 'Central Daylight Time',
MST : 'Mountain Standard Time',
MDT : 'Mountain Daylight Time',
PST : 'Pacific Standard Time',
PDT : 'Pacific Daylight Time',
};
moment.fn.zoneName = function () {
var abbr = this.zoneAbbr();
return abbrs[abbr] || abbr;
};
console.log(m.format('ddd MMM D YYYY HH:mm:ss [GMT]ZZ (zz)'));<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.2/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.7/moment-timezone-with-data-2010-2020.min.js"></script>
发布于 2016-11-13 10:54:38
我用这个片段做了第三个
var time = "2016-11-09 15:38:00",
zone = "America/Chicago",
format = "YYYY-MM-DD HH:mm:ss zZZ";
moment.tz(time,zone).utc().format(format)https://stackoverflow.com/questions/40504397
复制相似问题