当前位置: 首页 > 知识库问答 >
问题:

设置特定时区中的日期格式

金谭三
2023-03-14
// 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显示日期。

共有1个答案

沈嘉瑞
2023-03-14

正如Manto的回答中所指出的,.utCoffSet()是截至矩2.9.0的首选方法。该函数使用与UTC的实际偏移,而不是反向偏移(例如,在DST期间,纽约为-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.js2.9.0中不推荐使用较旧的.zone()作为setter。它接受包含时区标识符的字符串(例如,“-0400”或“-04:00”代表-4小时)或代表UTC落后分钟的数字(例如,纽约在DST期间为240)。

// 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')

若要使用命名时区而不是数字偏移量,请包括矩时区并使用.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')
 类似资料:
  • 问题内容: 我正在使用Moment.js解析和格式化Web应用程序中的日期。作为JSON对象的一部分,我的后端服务器以UTC纪元(Unix偏移)为单位发送日期(以毫秒为单位)。 在特定时区中 解析日期很容易-只需在解析前将RFC 822时区标识符附加到字符串的末尾即可: 但是,如何格式化 特定时区中 的日期? 无论浏览器的当前时间如何,我都希望获得一致的结果,但是我不想以UTC显示日期。 问题答案

  • 我从open API中获取的日期是。我想以以下方式格式化它。下面是我尝试的方法: 这将抛出一个错误,说明: 请注意,如果我从open api中提取的数据是,那么这个方法可以正常工作,并返回 请建议和劝告。

  • 问题内容: 使用MySQL 表 询问 我想以特定格式显示日期 预期产量 如何在mysql中进行查询。 需要查询帮助 问题答案: 您可以将DATE_FORMAT与格式字符串’%d-%M-%Y’一起使用。 结果:

  • 我有一个时区字符串,例如,“太平洋时间(美国和加拿大)”。对于特定的日期,包括夏令时,我需要在该时区以UTC获得相当于3PM的值。我该怎么做呢? 例如,我需要在UTC时间中找到12月3日PDT的3PM。

  • 在使用date格式自动设置为IE后,我试图解析某个包含日期条目为纪元数值的json文档。我需要不同的格式(也需要一毫秒) 所以问题是,如何解析IE。转换为带有Bson文档的某种自定义格式字符串。解析方法? 编辑:只是一个更新:问题在document.parse方法中,因为我不知道如何在解析json文档时使用tell.parse函数来使用自定义的日期格式。我总是得到某种默认的日期格式。如何发送给.p