Skip to content

Commit a8fffe8

Browse files
committed
refactor(Utility): 统一时间差计算方法使用UTC时间戳
移除 GetElapsedSeconds 和 GetElapsedMilliseconds 方法中的 useUtc 参数,强制使用 UTC 时间戳进行计算以提高一致性和性能。同时更新相关 XML 注释,将“本地时间”的表述更改为“当前时区时间”以提升准确性。
1 parent 5626442 commit a8fffe8

1 file changed

Lines changed: 19 additions & 21 deletions

File tree

GameFrameX.Foundation.Utility/Time/TimerHelper.Difference.cs

Lines changed: 19 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public static TimeSpan GetTimeDifference(DateTime startTime, DateTime endTime)
6060
/// <remarks>
6161
/// 此方法会先将时间戳转换为DateTime后再计算差值
6262
/// 时间戳以1970年1月1日为起点
63-
/// 当utc=true时使用UTC时间,否则使用本地时间
63+
/// 当utc=true时使用UTC时间,否则使用当前时区 (<see cref="CurrentTimeZone"/>) 时间
6464
/// 返回的TimeSpan对象包含完整的时间差信息
6565
/// </remarks>
6666
public static TimeSpan GetTimeDifference(long startTimestamp, long endTimestamp, bool utc = true)
@@ -80,7 +80,7 @@ public static TimeSpan GetTimeDifference(long startTimestamp, long endTimestamp,
8080
/// <remarks>
8181
/// 此方法提供毫秒级的精确时间差计算
8282
/// 时间戳以1970年1月1日为起点
83-
/// 当utc=true时使用UTC时间,否则使用本地时间
83+
/// 当utc=true时使用UTC时间,否则使用当前时区 (<see cref="CurrentTimeZone"/>) 时间
8484
/// 适用于需要高精度时间差计算的场景
8585
/// </remarks>
8686
public static TimeSpan GetTimeDifferenceMs(long startTimestampMs, long endTimestampMs, bool utc = true)
@@ -94,11 +94,11 @@ public static TimeSpan GetTimeDifferenceMs(long startTimestampMs, long endTimest
9494
/// 计算指定时间到当前时间的时间差
9595
/// </summary>
9696
/// <param name="time">指定时间</param>
97-
/// <param name="useUtc">是否使用UTC时间作为当前时间,默认为false(使用本地时间)</param>
97+
/// <param name="useUtc">是否使用UTC时间作为当前时间,默认为false(使用当前时区 (<see cref="CurrentTimeZone"/>) 时间)</param>
9898
/// <returns>时间差TimeSpan对象</returns>
9999
/// <remarks>
100100
/// 此方法计算指定时间到当前时间的差值
101-
/// 当useUtc=true时使用UTC时间,否则使用本地时间
101+
/// 当useUtc=true时使用UTC时间,否则使用当前时区 (<see cref="CurrentTimeZone"/>) 时间
102102
/// 如果指定时间在当前时间之后,将返回负值
103103
/// 常用于计算时间间隔和判断过期时间
104104
/// </remarks>
@@ -254,7 +254,7 @@ public static long GetMillisecondsDifference(long startTimestampMs, long endTime
254254
/// <returns>经过的秒数(如果指定时间在未来,返回负数)</returns>
255255
/// <remarks>
256256
/// 此方法计算从指定时间到现在经过的总秒数
257-
/// 当useUtc=true时使用UTC时间,否则使用本地时间
257+
/// 当useUtc=true时使用UTC时间,否则使用当前时区 (<see cref="CurrentTimeZone"/>) 时间
258258
/// 结果会被转换为长整型,可能损失小数部分精度
259259
/// 常用于计算时间是否过期或剩余时间
260260
/// </remarks>
@@ -265,38 +265,36 @@ public static long GetElapsedSeconds(DateTime time, bool useUtc = false)
265265
}
266266

267267
/// <summary>
268-
/// 计算指定时间戳到当前时间经过了多少秒
268+
/// 计算指定Unix时间戳到当前时间经过了多少秒
269269
/// </summary>
270-
/// <param name="timestamp">时间戳(秒)</param>
271-
/// <param name="useUtc">是否使用UTC时间,默认为true</param>
272-
/// <returns>经过的秒数</returns>
270+
/// <param name="timestamp">Unix时间戳(秒)。应为UTC时间戳。</param>
271+
/// <returns>经过的秒数。如果timestamp在未来,返回负数。</returns>
273272
/// <remarks>
274-
/// 此方法直接使用时间戳计算经过的秒数
275-
/// 当useUtc=true时使用UTC时间戳,否则使用本地时间戳
273+
/// 此方法直接使用Unix时间戳计算经过的秒数
274+
/// 使用 <see cref="UnixTimeSeconds"/> 获取当前UTC时间戳进行计算
276275
/// 计算效率高于DateTime转换方式
277276
/// 适用于Unix时间戳的剩余时间计算
278277
/// </remarks>
279-
public static long GetElapsedSeconds(long timestamp, bool useUtc = true)
278+
public static long GetElapsedSeconds(long timestamp)
280279
{
281-
var currentTimestamp = useUtc ? UnixTimeSeconds() : NowTimeSeconds();
280+
var currentTimestamp = UnixTimeSeconds();
282281
return currentTimestamp - timestamp;
283282
}
284283

285284
/// <summary>
286-
/// 计算指定毫秒时间戳到当前时间经过了多少毫秒
285+
/// 计算指定Unix时间戳到当前时间经过了多少毫秒
287286
/// </summary>
288-
/// <param name="timestampMs">时间戳(毫秒)</param>
289-
/// <param name="useUtc">是否使用UTC时间,默认为true</param>
290-
/// <returns>经过的毫秒数</returns>
287+
/// <param name="timestampMs">Unix时间戳(毫秒)。应为UTC时间戳。</param>
288+
/// <returns>经过的毫秒数。如果timestampMs在未来,返回负数。</returns>
291289
/// <remarks>
292-
/// 此方法直接使用毫秒时间戳计算经过的毫秒数
293-
/// 当useUtc=true时使用UTC时间戳,否则使用本地时间戳
290+
/// 此方法直接使用Unix毫秒时间戳计算经过的毫秒数
291+
/// 使用 <see cref="UnixTimeMilliseconds"/> 获取当前UTC时间戳进行计算
294292
/// 计算效率高于DateTime转换方式
295293
/// 适用于需要毫秒级精度的剩余时间计算
296294
/// </remarks>
297-
public static long GetElapsedMilliseconds(long timestampMs, bool useUtc = true)
295+
public static long GetElapsedMilliseconds(long timestampMs)
298296
{
299-
var currentTimestamp = useUtc ? UnixTimeMilliseconds() : NowTimeMilliseconds();
297+
var currentTimestamp = UnixTimeMilliseconds();
300298
return currentTimestamp - timestampMs;
301299
}
302300

0 commit comments

Comments
 (0)