Я работаю над ASP. Net Проектом с использованием Visual Studio 2019. В одной из форм есть поле для получения даты и времени от пользователя, и я отправляю эти данные в другой метод "ConvertDateTime", который конвертируйте дату и время в восточное время и сохраняйте их в базу данных, при извлечении восточного времени конвертируйте обратно в часовой пояс пользователя. в дневном свете Экономия времени при обработке неоднозначного времени с помощью метода, указанного ниже.
public static DateTime ConvertDateTime(DateTime time, IPTimeZoneInfo tzInfo)
{
if (!tzInfo.Initialized)
{
throw new HttpException("Timezone info structure not initialized.");
}
if (!String.IsNullOrEmpty(tzInfo.WinID)) // New adjustment using Dynamic DST
{
TimeZoneInfo tzi = TimeZoneInfo.FindSystemTimeZoneById(tzInfo.WinID);
if (!tzInfo.AutoAdjustDst && tzi.SupportsDaylightSavingTime && tzi.IsDaylightSavingTime(time))
time = time.AddHours(1.0);
// In case the time is invalid in the course time zone, increment until the next valid minute
while (tzi.IsInvalidTime(time))
time = time.AddMinutes(1);
time = DateTime.SpecifyKind(time, DateTimeKind.Unspecified);
return TimeZoneInfo.ConvertTime(time, tzi, ServerTimeZoneInfo);
}
double hourOff = tzInfo.HourOffset;
if (!tzInfo.AutoAdjustDst && time.IsDaylightSavingTime())
{
hourOff -= 1.0;
}
if (time.Year < 100)
{
time = time.AddYears(time.Year < 70 ? 2000 : 1900);
}
return time.AddHours(-hourOff);
}