我正在使用Moment.js解析和格式化Web应用程序中的日期。作为JSON对象的一部分,我的后端服务器以UTC纪元(Unix偏移)为单位发送日期(以毫秒为单位)。
在特定时区中 解析日期很容易-只需在解析前将RFC 822时区标识符附加到字符串的末尾即可:
// response varies according to your timezone
const m1 = moment('3/11/2012 13:00').utc().format("MM/DD HH:mm")
// problem solved, always "03/11 17:00"
const m2 = moment('3/11/2012 13:00 -0400').utc().format("MM/DD HH:mm")
console.log({ m1, m2 })
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
但是,如何格式化 特定时区中 的日期?
无论浏览器的当前时间如何,我都希望获得一致的结果,但是我不想以UTC显示日期。
此函数使用相对于UTC的实际偏移量,而不使用反向偏移量(例如,夏令时期间,纽约为-240)。像“+0400”这样的偏移字符串的作用与以前相同:
// always "2013-05-23 00:55"
moment(1369266934311).utcOffset(60).format('YYYY-MM-DD HH:mm')
moment(1369266934311).utcOffset('+0100').format('YYYY-MM-DD HH:mm')
Moment.js 2.9.0 中 已弃用了较旧.zone()
的设置器。它接受含有时区标识符的字符串(例如,“-0400”或“-04:00”为-4小时),或者表示分钟数后面UTC(例如,240为纽约DST期间)。
// always "2013-05-23 00:55"
moment(1369266934311).zone(-60).format('YYYY-MM-DD HH:mm')
moment(1369266934311).zone('+0100').format('YYYY-MM-DD HH:mm')
要使用命名时区而不是数字偏移量,请包含Moment时区并.tz()
改为使用:
// determines the correct offset for America/Phoenix at the given moment
// always "2013-05-22 16:55"
moment(1369266934311).tz('America/Phoenix').format('YYYY-MM-DD HH:mm')
但如何在指定时区设置日期的格式? 无论浏览器的当前时间如何,我都希望得到一致的结果,但我不希望以UTC显示日期。
区域设置可用于在类中的模式上创建特定于语言环境的格式。 请参阅以下使用特定于语言环境的类的示例。 文件:IOTester.java - 执行上面示例代码,得到以下结果 -
问题内容: 使用MySQL 表 询问 我想以特定格式显示日期 预期产量 如何在mysql中进行查询。 需要查询帮助 问题答案: 您可以将DATE_FORMAT与格式字符串’%d-%M-%Y’一起使用。 结果:
我只使用javascript(不允许使用任何第三方js),并且我想检索UTC+7格式的当前日期时间,格式如下例如:
问题内容: 我需要将日期格式化为特定的字符串。 我使用class使用“ ” 模式格式化日期,它将当前日期返回为 “ ”,但我需要为 “ ”。 下面是使用的编码, 输出 :格式化的字符串: 我需要的格式是在gmt时间之间添加冒号。 因为我正在使用Google日历插入事件,所以它仅接受我提到的必需格式。 问题答案: 您可以改用Joda Time。它具有可以满足您需求的format属性。 链接 最大优点
所以我必须将它重新格式化回UTC。现在当我试图通过相同的格式化方法将这个解析的日期显示到UTC时区时,它仍然显示在本地时区中。下面是我的代码,将解析的日期格式化为UTC- 我的示例日期字符串是“2015-12-23T15:00:00-0800” 分析后--alreadyParsedDateTime.ToString()::Thu Dec 24 04:30:00 IST 2015 分析后--Syst