Typescript date fnz format函数返回一天开始时不正确的时区偏移量

Typescript date fnz format函数返回一天开始时不正确的时区偏移量,typescript,date,date-fns,Typescript,Date,Date Fns,我正在使用(“日期fns”:“^2.0.0-beta.5”)和(“日期fns tz”:“^1.0.9”)设置用户给定日期的格式。我的应用程序有开始日期和结束日期。开始日期的时分秒设置为00.00.00。结束日期设置为23.59.59。时区偏移量附加到日期的末尾: 时区:亚洲/香港 import { startOfDay } from "date-fns" import { format } from "date-fns-tz" function getStartDate(date: Date,

我正在使用(“日期fns”:“^2.0.0-beta.5”)和(“日期fns tz”:“^1.0.9”)设置用户给定日期的格式。我的应用程序有开始日期和结束日期。开始日期的时分秒设置为00.00.00。结束日期设置为23.59.59。时区偏移量附加到日期的末尾:

时区:亚洲/香港

import { startOfDay } from "date-fns"
import { format } from "date-fns-tz"

function getStartDate(date: Date, timeZone: string) {
  const startDate = startOfDay(new Date())

  // startDate = Mon Feb 10 2020 00:00:00 GMT+0800 (Hong Kong Standard Time) {}

  const formatted = format(startDate, "yyyy-MM-dd'T'HH:mm:ssXXX", { timeZone })

  // formatted = "2020-02-10T00:00:00+32:00"

  return formatted
}
例如开始日期:2020-02-10T00:00:00+08:00结束日期:2020-02-10T23:59:59+08:00

为了实现00.00.00和23.59.59,我分别使用和

其余部分由函数处理

我遇到的问题是,当我尝试格式化startDate时,时区值不正确,但当我尝试格式化endDate时,它是正确的

日期=星期一2020年2月10日17:55:43 GMT+0800(香港标准时间){, 时区=“亚洲/香港”

endOfDay的类似过程

import { endOfDay } from "date-fns"
import { format } from "date-fns-tz"

function getEndDate(date: Date, timeZone: string) {
  const endDate = endOfDay(new Date())

  // endDate = Mon Feb 10 2020 23:59:59 GMT+0800 (Hong Kong Standard Time) {}

  const formatted = format(endDate, "yyyy-MM-dd'T'HH:mm:ssXXX", { timeZone })

  // formatted = "2020-02-10T23:59:59+08:00"

  return formatted
}

有人能解释一下为什么我在开始日期结束时得到+32:00吗?

通过将日期fns tz更新为最新版本来解决。在写这个答案时是1.0.10

我的错误@RobG,谢谢你指出这一点。更新