@@ -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