我们正在为web服务客户端开发一个c#应用程序。这将在Windows XP PC上运行。
web服务返回的字段之一是DateTime字段。服务器返回一个GMT格式的字段,即结尾有一个“Z”。
然而,我们发现。net似乎做了某种隐式转换,而且时间总是12小时。
下面的代码示例在一定程度上解决了这个问题,因为12小时的差异已经消失,但它不考虑新西兰的夏令时。
CultureInfo ci = new CultureInfo("en-NZ");
string date = "Web service date".ToString("R", ci);
DateTime convertedDate = DateTime.Parse(date);
根据这个约会网站:
UTC / GMT抵消
标准时区:UTC/GMT +12小时
夏令时:+1小时
当前时区偏移:UTC/GMT +13小时
我们如何调整额外的一小时?这可以通过编程来完成吗?或者这是PC上的某种设置吗?
不要忘记,如果你已经有一个DateTime对象,并且不确定它是UTC还是Local,直接使用对象上的方法是很容易的:
DateTime convertedDate = DateTime.Parse(date);
DateTime localDate = convertedDate.ToLocalTime();
我们如何调整额外的一小时?
除非指定。net将使用本地pc设置。我会读到:http://msdn.microsoft.com/en-us/library/system.globalization.daylighttime.aspx
从外观上看,代码可能是这样的:
DaylightTime daylight = TimeZone.CurrentTimeZone.GetDaylightChanges( year );
如上所述,仔细检查您的服务器设置的时区。网上有关于如何安全地影响IIS中的更改的文章。
不要忘记,如果你已经有一个DateTime对象,并且不确定它是UTC还是Local,直接使用对象上的方法是很容易的:
DateTime convertedDate = DateTime.Parse(date);
DateTime localDate = convertedDate.ToLocalTime();
我们如何调整额外的一小时?
除非指定。net将使用本地pc设置。我会读到:http://msdn.microsoft.com/en-us/library/system.globalization.daylighttime.aspx
从外观上看,代码可能是这样的:
DaylightTime daylight = TimeZone.CurrentTimeZone.GetDaylightChanges( year );
如上所述,仔细检查您的服务器设置的时区。网上有关于如何安全地影响IIS中的更改的文章。