date-fns-tz 时间区支持技术文档
本指南旨在详细介绍date-fns-tz库的安装、使用方法、API文档以及其在处理日期时间与时区转换中的应用。此库专为date-fns v3.0.0设计,利用了Intl API来实现无需将时区数据包含在代码包内。现代浏览器和Node.js环境均原生支持必要的功能,对于不支持的环境则推荐使用polyfill。
安装指南
要开始使用date-fns-tz,您需要通过npm或yarn将其添加到您的项目中:
npm install @date-fns/tz --save
# 或者使用yarn
yarn add @date-fns/tz
确保您的项目配置已准备就绪,以支持CommonJS或ESM导入方式。
项目使用说明
该库主要适用于那些需要在不同时区间进行日期计算与格式化的场景。
基础使用
在引入后,您可以立即开始使用提供的函数来处理时区相关的日期时间操作。
import { formatInTimeZone } from '@date-fns/tz';
// 示例:将UTC时间转换为纽约时区的格式化字符串
const utcDate = new Date('2023-04-01T12:00:00Z');
const formattedDate = formatInTimeZone(utcDate, 'America/New_York', 'yyyy-MM-dd HH:mm:ss zzz');
console.log(formattedDate); // 输出如:2023-04-01 08:00:00 EDT
项目API使用文档
主要API函数
formatInTimeZone
- 功能: 格式化给定的时间为指定时区的字符串。
- 参数:
date: 日期对象或ISO字符串。timeZone: IANA时区名称或偏移量字符串。formatStr: 格式字符串。[options]: 可选的配置对象,如locale用于国际化显示。
- 示例:
formatInTimeZone(new Date(), 'Asia/Shanghai', 'yyyy-MM-dd HH:mm:ss z'); // 使用上海时区格式化当前时间
fromZonedTime 和 toZonedTime
- 作用: 这两个函数帮助在不同时区之间转换日期时间,非常适合跨时区的应用场景。
- 示例:
const zonedDateTime = new Date();
const losAngelesDate = fromZonedTime(zonedDateTime, 'America/Los_Angeles');
const nyDate = toZonedTime(losAngelesDate, 'America/New_York');
getTimezoneOffset
- 功能: 获取指定时区相对于UTC的偏移量(毫秒)。
- 参数:
timeZone: 时区名或偏移字符串。[date]: 可选,用于考虑夏令时影响的具体日期。
- 示例:
const offset = getTimezoneOffset('Asia/Tokyo', new Date());
console.log(offset);
项目安装方式
如上所述,通过npm或yarn完成库的安装是首选方法。确保更新您的项目配置以兼容ESM或CJS模块导入需求。
通过遵循上述指导原则,开发者可以有效地利用date-fns-tz管理项目中的多时区日期时间逻辑,提升应用程序的国际用户体验。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



