如何使用给定时区偏移量的时刻获取日期和时间

fxnxkyjh  于 2021-09-29  发布在  Java
关注(0)|答案(2)|浏览(288)
{
    "time": 1627375726.8367202,
    "tzoffset": -25200,
    "ok": 1
}

使用上面的json,我需要获取日期、时间和时区。我试过很多方法,但都没有成功。有没有办法获取日期、时间和时区。我正在使用javascript。
谢谢

8wtpewkr

8wtpewkr1#

查看那里的文档
这里有一个小例子

moment.parseZone("2013-01-01T00:00:00-13:00").utcOffset(); // -780 ("-13:00" in total minutes)
wljmcqd8

wljmcqd82#

我们可以使用指定的unix时间和偏移量,使用 moment.utcOffset 功能。我们必须将tzoffset除以60,因为它(大概)是以秒为单位的,而矩则是以分钟为单位的。
通常不可能获得唯一的时区值,因为您的tzoffset将由多个区域共享,因此我们只能获得以下列表:

const input = {
    "time": 1627375726.8367202,
    "tzoffset": -25200,
    "ok": 1
};

console.log("UTC time:", moment.unix(input.time).utc().format('YYYY-MM-DD HH:mm'))
console.log("Time in Timezone:", moment.unix(input.time).utcOffset(input.tzoffset / 60).format('YYYY-MM-DD HH:mm'))
console.log("Time in Timezone (with offset):", moment.unix(input.time).utcOffset(input.tzoffset / 60).format())
console.log("Possible timezones:", getPossibleTimezones(input.time, input.tzoffset))

function getPossibleTimezones(time, tzoffset) {
    return moment.tz.names().filter(zone => moment.tz(moment.unix(time), zone).utcOffset() === input.tzoffset / 60);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js" referrerpolicy="no-referrer"></script>
<script src="https://momentjs.com/downloads/moment-timezone-with-data.js"></script>

我也会考虑使用Luxon,因为现在是维修的时候了。
我们可以使用fixedoffsetzone获取该区域的本地时间:

const input = {
    "time": 1627375726.8367202,
    "tzoffset": -25200,
    "ok": 1
};

let { DateTime, FixedOffsetZone } = luxon;

let zone = new FixedOffsetZone(input.tzoffset / 60)

console.log("UTC time:", DateTime.fromSeconds(input.time, { zone: 'UTC' }).toISO())
console.log("Time in timezone:", DateTime.fromSeconds(input.time,  { zone: zone }).toISO())
<script src="https://cdnjs.cloudflare.com/ajax/libs/luxon/2.0.1/luxon.min.js" integrity="sha512-bI2nHaBnCCpELzO7o0RB58ULEQuWW9HRXP/qyxg/u6WakLJb6wz0nVR9dy0bdKKGo0qOBa3s8v9FGv54Mbp3aA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>

相关问题