Skip to content

Commit 28065ea

Browse files
committed
docs(Utility): 更新 TimerHelper 的 README 文档以反映 API 变更
更新 README.md 中 TimerHelper 部分的说明,以匹配最新的 API 设计和功能增强。主要变更包括: - 强调新增的时区支持特性 - 更新方法名以反映新的命名规范(如 GetTodayStartTime 替代 GetDayBegin) - 增加新的核心功能说明,如 Unix 时间戳处理和经过时间计算 - 提供更新的使用示例
1 parent 29146d8 commit 28065ea

1 file changed

Lines changed: 38 additions & 20 deletions

File tree

GameFrameX.Foundation.Utility/README.md

Lines changed: 38 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -49,29 +49,47 @@ long newId = SnowFlakeIdHelper.NewId;
4949
```
5050

5151
### 4. TimerHelper
52-
提供强大的时间处理功能,涵盖时间戳、日期计算、时间范围判断等。
53-
54-
**核心功能:**
55-
- **时间戳转换**: `ToTimestamp()` / `ToDateTime()`
56-
- **时间偏移**: `ToTimeOffset()`
57-
- **时间范围判断**: `IsBetween()`
58-
- **获取当前时间**: `GetCurrentTime()`
59-
- **日期计算**:
60-
- `GetDayBegin()` / `GetDayEnd()`
61-
- `GetWeekBegin()` / `GetWeekEnd()`
62-
- `GetMonthBegin()` / `GetMonthEnd()`
63-
- `GetYearBegin()` / `GetYearEnd()`
64-
- **时间差计算**: `GetTimeDifference()`
52+
提供强大的时间处理功能,支持自定义时区、Unix时间戳转换、日期边界计算等。
53+
54+
**核心特性:**
55+
56+
- **时区支持**:
57+
- `CurrentTimeZone`: 获取或设置当前时区(默认为系统本地时区)。
58+
- 所有涉及"本地时间"的计算均基于此配置,而非服务器系统时区。
59+
60+
- **时间戳处理**:
61+
- `UnixTimeSeconds()`: 获取当前 UTC 时间的秒级时间戳。
62+
- `UnixTimeMilliseconds()`: 获取当前 UTC 时间的毫秒级时间戳。
63+
- `TimestampToDateTime()` / `MillisecondsTimeStampToDateTime()`: 时间戳转 DateTime。
64+
65+
- **日期边界计算**:
66+
- `GetTodayStartTime()` / `GetTodayEndTime()`
67+
- `GetWeekStartTime()` / `GetWeekEndTime()`
68+
- `GetMonthStartTime()` / `GetMonthEndTime()`
69+
- `GetYearStartTime()` / `GetYearEndTime()`
70+
71+
- **时间差与经过时间**:
72+
- `GetElapsedSeconds(timestamp)`: 计算指定时间戳到现在的经过秒数(高效,无 DateTime 转换)。
73+
- `GetTimeDifference(start, end)`: 计算两个时间的时间差。
74+
75+
- **测试辅助**:
76+
- `SetTimeOffset()`: 设置时间偏移量,用于模拟过去或未来的时间。
6577

6678
**使用示例:**
6779
```csharp
68-
// 获取当前时间戳
69-
long timestamp = TimerHelper.ToTimestamp(DateTime.Now);
80+
// 1. 设置时区 (可选,默认为系统本地时区)
81+
TimerHelper.SetTimeZone(TimeZoneInfo.FindSystemTimeZoneById("China Standard Time"));
82+
83+
// 2. 获取当前时间戳 (UTC)
84+
long timestamp = TimerHelper.UnixTimeSeconds();
85+
86+
// 3. 计算经过时间 (高效)
87+
long elapsed = TimerHelper.GetElapsedSeconds(timestamp);
7088

71-
// 判断某个时间是否在指定范围内
72-
bool isInRange = TimerHelper.IsBetween(DateTime.Now, startTime, endTime);
89+
// 4. 获取特定日期的边界
90+
DateTime weekStart = TimerHelper.GetWeekStartTime(); // 本周一开始时间 (基于 CurrentTimeZone)
91+
DateTime weekEnd = TimerHelper.GetWeekEndTime(); // 本周日结束时间 (基于 CurrentTimeZone)
7392
74-
// 获取本周的开始和结束时间
75-
DateTime weekStart = TimerHelper.GetWeekBegin(DateTime.Now);
76-
DateTime weekEnd = TimerHelper.GetWeekEnd(DateTime.Now);
93+
// 5. 判断是否为同一周
94+
bool isSameWeek = TimerHelper.IsNowSameWeek(lastLoginTime);
7795
```

0 commit comments

Comments
 (0)