How to find Current Time of different culture i.e different timezone in c# asp.net?
像DateTime.Now给出了当前系统的当前日期和时间。
我们如何使用c#asp.net找到不同文化的Current Time,即不同的时区???
我找到SystemTimeToTzSpecificLocalTime Function但我怎么能用这个?
-
可能的答案stackoverflow.com/questions/832986/…
如果您使用的是.NET 3.5或更高版本,则可以使用TimeZoneInfo:
1 2
| TimeZoneInfo otherZone = ...;
DateTime otherZoneTimeNow = TimeZoneInfo.ConvertTime(DateTime.UtcNow, otherZone); |
你需要小心使用TimeZoneInfo - 不同的DateTime"种类"做不同的事情 - 你应该仔细阅读你所做的任何电话的文档。 (我最近在博客上写了关于DateTime的问题...... TimeZoneInfo基本上要处理歧义。)
-
是的我正在使用.NET 4.0
-
@Jon Skeet:你真的可以用它来获得另一个时区的确切(或几乎精确)时间吗?如果是这样,需要什么标准来获得时间 - 在这种情况下,让我们说从马萨诸塞州(EST)到伦敦(GMT)(GMT或GMT + 1 ??)
-
@James:"什么标准"是什么意思?您只需要获得正确的TimeZoneInfo(例如通过ID)并进行转换。是的,TimeZoneInfo处理夏令时。
-
@Jon Skeet:我想知道的是,当你拥有的是一个地址时,如何获得时区的ID。说我在Massachussetts,我想知道在亚利桑那州图森的一个地址的当地时间 - 有没有办法在没有将一些地理信息存储在数据库中或通过API进行查找的情况下这样做?一旦你知道了时区,TimeZoneInfo就可以工作了,但如果你事先不知道时区怎么办?
-
@James:这是一个非常不同的问题。有各种Web服务可以为您提供这些信息,但通常是根据Olson区域ID。那时你需要Noda Time :)
你可以使用像Yahoo!这样的服务。 Web Services API,用于提取此信息等。 您可以通过Yahoo!获取时区,当地时间,人口等。 Web服务API。 这种方法的最大缺点是每日最大命中数。
您可以查看此链接以获取更多详细信息:
http://developer.yahoo.com/flash/maps/classreference/com/yahoo/maps/webservices/geocoder/GeocoderResult.html