从服务器获取当前日期时间,并将其转换为本地时间在c# [英] Get current date time from server and convert it into local time in c#

查看:724
本文介绍了从服务器获取当前日期时间,并将其转换为本地时间在c#的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

帮助:我有一个服务器在GMT-07.00小时内有时间。我当地时间是GMT + 05.30小时。我需要从服务器获取当前日期和时间,并将此日期和时间转换为当地时间。我已经尝试了很多代码,但仍然没有找到这样做的连续方式。有人可以帮助我。

Help: I have a server which is having time in GMT-07.00 hours. My local time is GMT+05.30 hours. I need to get current date and time from server and convert this date and time into my local time. I have tried many codes, but still have not found a successive way of doing this. Can somebody please help me out.

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();

我已经尝试了所有上述方法,但我没有得到正确的答案。假设我目前的本地时间是2014年3月9日12:51:00 PM,那么我的服务器时间将是12.30小时,与当地的时间不同,即从本地时间减去12小时30分钟,以获得我的服务器时间。我需要从服务器时间获取我当地的时间。怎么可以实现?请建议我一些解决方案..提前感谢您的答案

I have tried all the above methods, still I'm not getting the correct answer. Suppose my current local time is 09-Mar-2014 12:51:00 PM, then my server time would be 12.30 hours different from my local time, ie subtract 12 hours and 30 minutes from my local time to get my server time. I need to get my local time from the server time. How can it be acheived?? Please suggest me some solutions.. Thanks in advance for your answers

推荐答案

不需要知道服务器时区。如果服务器时间设置正确,您可以尝试以下方式:

no need to know server time zone. if the server time setting is correct you can try this :

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

在本地查看,更改您的计算机时区以匹配您的服务器。然后运行代码。我检查并正常工作。

to check it locally , change your computer timezone to match your server. then run the code. I check and it's working fine.

更新:

update:

前两行可以混合成一行如下。具有更好的表现:

the first two lines can be mixed into one line as below . that has a better performance :

DateTime utcTime = DateTime.UtcNow;

这篇关于从服务器获取当前日期时间,并将其转换为本地时间在c#的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆