c# - 从服务器获取当前日期时间并在 C# 中将其转换为本地时间

标签 c# datetime timezone utc localtime

帮助:我有一台服务器,它的时间是 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/

相关文章:

c# - 从本地文件夹读取文本文件

c# - ReaderWriterLockSlim 和 async\await

python - 如何将不同时区的 tz_convert 应用于 pandas 数据框中的不同行

python - 如何获得给定时区的 UTC 时间 "midnight"?

c# - 验证 ORA-01438 : value larger than specified precision allowed for this column

django - 当更新同一模型中的另一个特定字段时,如何更新 Django models.DateTimeField?

c# - Convert.ToString(DateTime) 产生英国格式而不是美国格式

c# - 使用野田时间在时区之间转换

Python Plotly 时区在 x 轴烛台中设置不正确

c# - OWIN 登录性能缓慢 >30 秒