我有一个 unix 时间戳,我想使用 moment-timezone 库将其转换为本地时间。我不知道该怎么做。找不到任何东西。大家有什么想法吗?
我尝试过此操作,但它没有给出正确的本地时间。
moment.utc(1465297200000).toDate();
我得到的输出是Tue Jun 07 2016 11:00:00 GMT+0000 (UTC)
。
而我预计时间为 2016 年 6 月 7 日星期二 16:30:00 GMT+0000 (UTC)
。
此外,我希望输出格式为 MM-DD-YYYY HH:mm:ss
。
最佳答案
如果您只需要用户的本地时间,则没有理由引入时刻时区。仅当您需要显示 UTC 或用户本地时间以外的时区的时间时,才会使用 Moment 时区。
如果您希望在全局时间轴上获取一个点,并将其显示为用户的本地时间,请使用 moment()
构造函数:
moment(1465297200000).format()
"2016-06-07T06:00:00-05:00"
请注意,我现在处于 UTC-5 时区,因此时间戳的 UTC 时间已向后移动五个小时,从“2016-06-07T11:00:00Z”到“2016-06-07T06” :00:00-05:00”。
我不确定为什么您会期望这会导致格林尼治标准时间 16:30。您实际上希望印度标准时间显示为 16:30 吗?如果您使用的计算机设置为印度时间,则这应该可以与矩函数配合使用。
要获取您正在寻找的格式,您只需向格式函数指定格式标记即可:
moment(1465297200000).format('MM-DD-YYYY HH:mm:ss')
"06-07-2016 06:00:00"
使用 moment 时无需调用 .toDate
,除非您正在与需要日期对象的第三方 API 交互。
关于momentjs - Unix 时间戳到时刻时区中的本地日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37678460/