dayjs 没有正确转换时区

dayjs is not converting timezones properly

我正在尝试将日期从本地时间 (Taipei UTC+8) 转换为洛杉矶 (UTC-7) 但是 dayjs 转换似乎完全关闭了:

dayjs("2020-09-21 20:30").tz("Asia/Taipei")

这导致 2020 年 9 月 22 日星期二 05:30:00 GMT-0400(东部夏令时) 但它应该是 2020 年 9 月 21 日星期一 02:30:00 GMT-0400(东部夏令时)

知道发生了什么事吗?

试试这个:

dayjs.extend(utc)
dayjs.extend(timezone)
dayjs("2020-09-21 20:30").tz("Asia/Taipei")

我通过在 dayjs("2020-09-21 20:30").tz("Asia/Taipei").local()[=10 之后添加 .local() 来修复它=]

我修复了先使用 utc 然后格式化为本地时区

import dayjs from 'dayjs'
import utc from 'dayjs/plugin/utc'
import tz from 'dayjs/plugin/timezone'

dayjs.extend(utc)
dayjs.extend(tz)

const timeZone = dayjs.tz.guess()
dayjs.utc(utcDate).tz(timeZone)

我正在使用最新版本的 dayjs - 1.11.1 和 react native v0.66.4。 当我写:

dayjs("2020-09-21 20:30").tz("Asia/Taipei")

我得到的结果是 null。有人有这个问题吗?

import dayjs from 'dayjs'
import utc from 'dayjs/plugin/utc'
import tz from 'dayjs/plugin/timezone'

dayjs.extend(utc)
dayjs.extend(tz)    

dayjs("2020-09-21 20:30").tz("Asia/Taipei").local().toDate();

dayjs("2020-09-21 20:30").tz("Asia/Taipei").local().toDate().toLocaleString();

.toString().toISOString() 似乎总是在时区转换之前打印原始日期,这可能会引起一些混乱。 toDate().toLocaleString() 有效。