我需要将MySQL数据库中的一堆日期从太平洋时间(America/Los_Angeles)转换为UTC.我找到了一个很好的答案,如何做到这一点.
在我的测试和准备期间,我发现在使用以下任何时区名称时,我获得了相同的时间转换:
所以我的问题如下:
America名称US组或名称组中选择它们?我正在开发一个"在线提醒系统"项目(ASP.NET 2.0(C#)/ SQL Server 2005)
因为这是一个提醒服务,它将在特定日期将邮件发送给用户.但问题是用户不是来自特定国家,而是来自世界各地和不同时区.现在当我注册时,我要求用户时区的方式与Windows在安装时询问我们的时区一样.
但我没有得到用户选择(+5.30)或时区如何在我的asp.net应用程序中处理这个时区.如何按时区工作.
请建议在这个应用程序中是否有更好的方法来处理时区?
谢谢
您好,我收到一些随机的 datetimeoffset utc 我的观点是 1 - 将其转换为芝加哥时间 2 - 定义芝加哥 startOfDay 3 - 最后将芝加哥 startOfDay 转换回 utc datetimeOffset。(查询utc api需要这个过程)
我写的这个似乎可以做我想做的事,但真的不确定它总是能用夏令时灯等来完成工作。有人可以告诉或改进代码吗?
var UTCDate = DateTimeOffset.UtcNow; //<----------Some random utc dateTimeOffset
TimeZoneInfo zone = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
DateTimeOffset CSTDate = GetZoneDatetimeOffset(UTCDate, zone);
Console.WriteLine("Utc : {0} Chicago: {1} local : {2}", UTCDate, CSTDate, UTCDate.ToLocalTime());
Console.WriteLine(" Chicago StartOfDay: {0} Chicago StartOfDay To UTC : {1}", CSTDate.Date, CSTDate.Date.ToUniversalTime());
public DateTimeOffset GetZoneDatetimeOffset(DateTimeOffset someUTCDate , TimeZoneInfo destZone)
{
DateTimeOffset ZoneDateTimeOffset = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(someUTCDate.DateTime , TimeZoneInfo.Utc.Id, destZone.Id);
return ZoneDateTimeOffset;
}
Run Code Online (Sandbox Code Playgroud)