Skip to content

Commit ce01c0d

Browse files
committed
fix(Time): 修复周时间戳计算中的时区偏移问题
确保在将周起始和结束时间转换为Unix时间戳时,正确应用当前时区的UTC偏移量,避免因时区差异导致的时间计算错误。
1 parent db81146 commit ce01c0d

1 file changed

Lines changed: 12 additions & 6 deletions

File tree

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

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,8 @@ public static DateTime GetWeekStartTime()
265265
/// </remarks>
266266
public static long GetWeekStartTimestamp()
267267
{
268-
return new DateTimeOffset(GetWeekStartTime()).ToUnixTimeSeconds();
268+
var time = GetWeekStartTime();
269+
return new DateTimeOffset(time, CurrentTimeZone.GetUtcOffset(time)).ToUnixTimeSeconds();
269270
}
270271

271272
/// <summary>
@@ -293,7 +294,8 @@ public static DateTime GetWeekEndTime()
293294
/// </remarks>
294295
public static long GetWeekEndTimestamp()
295296
{
296-
return new DateTimeOffset(GetWeekEndTime()).ToUnixTimeSeconds();
297+
var time = GetWeekEndTime();
298+
return new DateTimeOffset(time, CurrentTimeZone.GetUtcOffset(time)).ToUnixTimeSeconds();
297299
}
298300

299301

@@ -327,7 +329,8 @@ public static DateTime GetStartTimeOfWeek(DateTime date)
327329
/// </remarks>
328330
public static long GetStartTimestampOfWeek(DateTime date)
329331
{
330-
return new DateTimeOffset(GetStartTimeOfWeek(date)).ToUnixTimeSeconds();
332+
var time = GetStartTimeOfWeek(date);
333+
return new DateTimeOffset(time, CurrentTimeZone.GetUtcOffset(time)).ToUnixTimeSeconds();
331334
}
332335

333336

@@ -356,7 +359,8 @@ public static DateTime GetNextWeekStartTime()
356359
/// </remarks>
357360
public static long GetNextWeekStartTimestamp()
358361
{
359-
return new DateTimeOffset(GetNextWeekStartTime()).ToUnixTimeSeconds();
362+
var time = GetNextWeekStartTime();
363+
return new DateTimeOffset(time, CurrentTimeZone.GetUtcOffset(time)).ToUnixTimeSeconds();
360364
}
361365

362366
/// <summary>
@@ -384,7 +388,8 @@ public static DateTime GetNextWeekEndTime()
384388
/// </remarks>
385389
public static long GetNextWeekEndTimestamp()
386390
{
387-
return new DateTimeOffset(GetNextWeekEndTime()).ToUnixTimeSeconds();
391+
var time = GetNextWeekEndTime();
392+
return new DateTimeOffset(time, CurrentTimeZone.GetUtcOffset(time)).ToUnixTimeSeconds();
388393
}
389394

390395

@@ -416,6 +421,7 @@ public static DateTime GetEndTimeOfWeek(DateTime date)
416421
/// </remarks>
417422
public static long GetEndTimestampOfWeek(DateTime date)
418423
{
419-
return new DateTimeOffset(GetEndTimeOfWeek(date)).ToUnixTimeSeconds();
424+
var time = GetEndTimeOfWeek(date);
425+
return new DateTimeOffset(time, CurrentTimeZone.GetUtcOffset(time)).ToUnixTimeSeconds();
420426
}
421427
}

0 commit comments

Comments
 (0)