帮助:我有一台服务器,它的时间是 GMT-07.00。我的本地时间是 GMT+05.30 小时。我需要从服务器获取当前日期和时间并将此日期和时间转换为我的本地时间。我已经尝试了很多代码,但仍然没有找到连续的方法来做到这一点。有人可以帮帮我吗。
string zoneId = "India Standard Time";
TimeZoneInfo tzi = TimeZoneInfo.FindSystemTimeZoneById(zoneId);
DateTime result = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, tzi);
DateTime cu = result.ToUniversalTime();
DateTime cur = cu.ToLocalTime();
上面的方法我都试过了,还是没有得到正确的答案。假设我当前的本地时间是 09-Mar-2014 12:51:00 PM,那么我的服务器时间将与我的本地时间相差 12.30 小时,即从我的本地时间减去 12 小时 30 分钟以获得我的服务器时间。我需要从服务器时间获取本地时间。怎样才能达到??请给我一些解决方案的建议。提前感谢您的回答
最佳答案
无需知道服务器时区。如果服务器时间设置正确,您可以试试这个:
DateTime serverTime = DateTime.Now; // gives you current Time in server timeZone
DateTime utcTime = serverTime.ToUniversalTime(); // convert it to Utc using timezone setting of server computer
TimeZoneInfo tzi = TimeZoneInfo.FindSystemTimeZoneById("India Standard Time");
DateTime localTime = TimeZoneInfo.ConvertTimeFromUtc(utcTime, tzi); // convert from utc to local
要在本地检查它,请更改您的计算机时区以匹配您的服务器。然后运行代码。我检查了一下,它工作正常。
更新:
前两行可以混合成一行,如下所示。具有更好的性能:
DateTime utcTime = DateTime.UtcNow;
关于c# - 从服务器获取当前日期时间并在 C# 中将其转换为本地时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22279525/