# @callstack/timezone-hermes-fix 中文文档

规范地址：https://npmcn.com/package/%40callstack/timezone-hermes-fix/

版本：0\.5\.1
npm 元数据更新时间：2026-11-06T13:30:38.445Z
中文译文更新时间：2026-11-09T00:15:07.912Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40callstack/timezone-hermes-fix
原文对照：https://npmcn.com/package/%40callstack/timezone-hermes-fix/?lang=original
项目主页：https://github.com/callstack/timezone-hermes-fix#readme
源码仓库：https://github.com/callstack/timezone-hermes-fix

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：38.5 kB，32 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- peer 依赖：react \*，react-native \>= 0\.87\.0
- 首次发布：2025-07-25T10:35:23.842Z
- 最新版本发布：2026-11-03T22:29:25.239Z
- 近 30 天下载量：2969（2026-10-09 至 2026-11-07，npm 官方下载统计）
- 已发布版本数：6（近 12 个月 3 个）

## 中文简介

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

## 安装

```sh
npm install @callstack/timezone-hermes-fix
```

也可以使用：`pnpm add @callstack/timezone-hermes-fix`、`yarn add @callstack/timezone-hermes-fix`、`bun add @callstack/timezone-hermes-fix`

## README

# 时区 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引擎的回放原生应用程序可能会遇到时区计算问题,特别是在:

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

此库修复这些 [已知问题](https://github.com/facebook/hermes/pull/1693) 通过提供本地时区缓存重置.

## \* 安装

### 使用 Yarn( 建议)

```sh
yarn add @callstack/timezone-hermes-fix
```

### 使用 npm

```sh
npm install @callstack/timezone-hermes-fix
```

## 使用量

### 快速从虎克开始

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

```tsx
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>
  );
}
```

### 直接本地模块使用

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

```tsx
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 参考

### 类型

```typescript
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 }`

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

## 示例应用程序

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

```sh
# 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
```

## 捐款

我们欢迎捐款! 请看我们的 [贡献指南](https://npmcn.com/package/%40callstack/timezone-hermes-fix/CONTRIBUTING.md) 详细情况.

## 许可证

这个项目根据麻省理工学院的许可证获得许可。 见 [自由主义](https://npmcn.com/package/%40callstack/timezone-hermes-fix/LICENSE) 详细情况.

## 由 Calltack 制作

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

## 常见问题

### @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 和提交记录判断。

