Typescript date fnz format函数返回一天开始时不正确的时区偏移量
我正在使用(“日期fns”:“^2.0.0-beta.5”)和(“日期fns tz”:“^1.0.9”)设置用户给定日期的格式。我的应用程序有开始日期和结束日期。开始日期的时分秒设置为00.00.00。结束日期设置为23.59.59。时区偏移量附加到日期的末尾: 时区:亚洲/香港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,
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,谢谢你指出这一点。更新