c1_unity/Assets/Scripts/Utils/TimeHelper.cs
2025-11-03 10:59:33 +08:00

28 lines
852 B
C#

using System;
namespace BF
{
public static class TimeHelper
{
public static long GetDayBeginTimestamp(long timestamp, int timeZoneOffset)
{
// 将时间戳转换为UTC时间
DateTime utcTime = DateTimeOffset.FromUnixTimeSeconds(timestamp).UtcDateTime;
// 应用时区偏移(不考虑夏令时)
if (timeZoneOffset != 0)
{
utcTime = utcTime.AddHours(timeZoneOffset);
}
// 构造当天0点的UTC时间
DateTime utcDayBegin = new DateTime(utcTime.Year, utcTime.Month, utcTime.Day, 0, 0, 0, DateTimeKind.Utc);
// 减去时区偏移量恢复UTC时间
if (timeZoneOffset != 0)
{
utcDayBegin = utcDayBegin.AddHours(-timeZoneOffset);
}
// 转换为时间戳并减去时区偏移
long utcDayBeginTimestamp = new DateTimeOffset(utcDayBegin).ToUnixTimeSeconds();
return utcDayBeginTimestamp;
}
}
}