@callstack/timezone-hermes-fix

中文文档
0.5.1发布于 2026/11/04MITTypeScriptCommonJS零依赖近 30 天下载 2969

用于重设时区缓存, 而时区更改

中文使用文档
文档目录16 节
  1. QQ 反应原生支持
  2. 问题
  3. * 安装
  4. 使用 Yarn( 建议)
  5. 使用 npm
  6. 使用量
  7. 快速从虎克开始
  8. 直接本地模块使用
  9. API 参考
  10. 类型
  11. 方法
  12. 钩子
  13. 示例应用程序
  14. 捐款
  15. 许可证
  16. 由 Calltack 制作

时区 Hermes 修复

时区 Hermes 修正 是一个跨平台 React Industrial 库,在使用 Hermes JavaScript 引擎时为与时区相關的問題提供强大的工作回放. 它包括Android和iOS的本土模块,被设计为React Industrial项目需要准确的时区处理的滴入解决方案.

QQ 反应原生支持

库版本反应原生版本
0.x - 0.3.x (中文(简体) )0.80.2 - 0.81x (中文(简体) )
0.4.x (中文(简体) )0.82.x - 0.86.x (英语)
0.5.x (中文(简体) )0.87.x及以上(含)

问题

使用Hermes JavaScript引擎的回放原生应用程序可能会遇到时区计算问题,特别是在:

  • 设备时区在应用程序运行时更改
  • 日期/时间计算不反映当前时区
  • 不同设备或区域的行为不一致

此库修复这些 已知问题 通过提供本地时区缓存重置.

* 安装

yarn add @callstack/timezone-hermes-fix

使用 npm

npm install @callstack/timezone-hermes-fix

使用量

快速从虎克开始

使用库最简单的方法是使用提供的回放钩:

import React from 'react';
import { View, Text } from 'react-native';
import { useTimezoneHermesFix } from '@callstack/timezone-hermes-fix';

export default function App() {
  const { currentTimezone } = useTimezoneHermesFix();

  return (
    <View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
      <Text>Current Timezone: {currentTimezone}</Text>
      <Text>Current Time: {new Date().toLocaleString()}</Text>
    </View>
  );
}

直接本地模块使用

为了进行更多的控制,您可以直接使用本地模块:

import { NativeTimezoneHermesFix } from '@callstack/timezone-hermes-fix';

// Get current timezone information
const timezone = NativeTimezoneHermesFix.getCurrentTimeZone();
console.log('Timezone:', timezone.name); // "America/New_York"
console.log('GMT Offset:', timezone.secondsFromGMT); // -18000 (for EST)
console.log('DST Active:', timezone.isDaylightSavingTime); // true/false

// Get all supported timezones
const supportedTimezones = NativeTimezoneHermesFix.getSupportedTimeZones();
console.log('Available timezones:', supportedTimezones.length);

// Listen for timezone changes
const subscription = NativeTimezoneHermesFix.onTimezoneChange.addListener(
  (newTimezone) => {
    console.log('Timezone changed to:', newTimezone.name);
    console.log('New GMT offset:', newTimezone.secondsFromGMT);
    console.log('DST status:', newTimezone.isDaylightSavingTime);
  }
);

// Clean up listener when component unmounts
// subscription.remove();

API 参考

类型

type CurrentTimezone = {
  name: string; // e.g., "America/New_York"
  secondsFromGMT: number; // Offset in seconds from GMT
  isDaylightSavingTime: boolean; // Whether DST is currently active
};

方法

getCurrentTimeZone(): CurrentTimezone

返回当前时区信息 .

getSupportedTimeZones(): string[]

返回所有支持的时区标识符的数组.

onTimezoneChange: EventEmitter<CurrentTimezone>

当设备时段变化时,事件会发射起火.

钩子

useTimezoneHermesFix(): { currentTimezone: string }

反应钩子,当时区变化时自动更新.

示例应用程序

一个完整的示例应用程序包含在寄存器中. 运行它:

# Clone the repository
git clone https://github.com/callstack/timezone-hermes-fix.git
cd timezone-hermes-fix

# Install dependencies
yarn

# Run on iOS
yarn example ios

# Run on Android
yarn example android

捐款

我们欢迎捐款! 请看我们的 贡献指南 详细情况.

许可证

这个项目根据麻省理工学院的许可证获得许可。 见 自由主义 详细情况.

由 Calltack 制作

@callstack/timezone-hermes-fix 是一个开源项目,将永远自由使用。 如果你觉得这很酷,请 显示它。 Calltack是一群反动和反动的本地怪人 联系我们 你好@ callstack.com 如果你需要帮忙的话 或者只是想打个招呼!

版本与发布记录

@callstack/timezone-hermes-fix 共发布 6 个版本,首次发布于 2025/07/25;过去 12 个月发布了 3 个版本。

版本发布日期距今
0.5.1latest2026/11/045 天前
0.5.02026/08/212 个月前
0.4.02025/12/0211 个月前
0.3.02025/08/281.2 年前
0.2.02025/07/251.3 年前
0.1.12025/07/251.3 年前

关于 @callstack/timezone-hermes-fix 的常见问题

@callstack/timezone-hermes-fix 是什么?

用于重设时区缓存, 而时区更改

如何安装 @callstack/timezone-hermes-fix?

在项目目录运行 npm install @callstack/timezone-hermes-fix,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(*)、react-native(>= 0.87.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@callstack/timezone-hermes-fix 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@callstack/timezone-hermes-fix 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@callstack/timezone-hermes-fix 可以商用吗?

@callstack/timezone-hermes-fix 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@callstack/timezone-hermes-fix 的下载量有多少?

根据 npm 官方下载统计,@callstack/timezone-hermes-fix 在 2026/10/09 – 2026/11/07 这 30 天内被下载 2,969 次,日均约 99 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@callstack/timezone-hermes-fix 还在维护吗?

最新版本 0.5.1 发布于 2026/11/04(5 天前);至今共发布 6 个版本,其中过去 12 个月发布了 3 个;首次发布于 2025/07/25。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。