悬赏分:10 浏览:421 次
大家都知道我们处于东八区(GMT+08:00)北京,重庆,香港特别行政区,乌鲁木齐地区。
减去8个小时就是标准时间,使用 DateTime.Now.ToUniversalTime(); DateTime.Now.ToString();
打出来也是正好相差8小时,不过当我把计算机时间设置成
(GMT)格林威治标准时间:都柏林,爱丁堡,里斯本,伦敦时间
却是与北京时间相差了9个小时,查了一下知道可能是因为那里因为从3月30日开始实行夏令时的原因,
我想知道,DateTime.Now如何能根据时区和国家来简单的得出某一地区的此刻的时间来?如何考虑夏令时的因素?
|
4个月前 风海迷沙 : DateTime在new出来时,无论是.net2.0还是3.0以上的版本,都是带有本地系统时钟的时区特性的,在3.0可以得知自己所在的时区,在2.0中却只能用 IsDaylightSavingTime()方法来得知new出来的datetime是否在执行夏时制,我想这还是系统自身有关。 希望自己的空间可以早日支持.net3.5就可以随意变换时区了 System.TimeZoneInfo(定义在本地计算机上未找到的时区。) 名称 说明 CreateCustomTimeZone(String, TimeSpan, String, String) 创建带指定标识符的自定义时区、与协调世界时 (UTC) 的偏移量、显示名称以及标准时间显示名称。 CreateCustomTimeZone(String, TimeSpan, String, String, String, array<TimeZoneInfo..::.AdjustmentRule>[]()[]) 创建带指定标识符的自定义时区、与协调世界时 (UTC) 的偏移量、显示名称、标准时间名称、夏时制名称和夏时制规则。 CreateCustomTimeZone(String, TimeSpan, String, String, String, array<TimeZoneInfo..::.AdjustmentRule>[]()[], Boolean) 创建带指定标识符的自定义时区、与协调世界时 (UTC) 的偏移量、显示名称、标准时间名称、夏时制名称、夏时制规则以及指示返回的对象是否反映夏时制信息的值。 返回值 类型:System..::.Boolean 如果 Kind 为 Local 或 Unspecified 并且此 DateTime 实例的值在当前时区的夏时制范围以内,则为 true。如果 Kind 为 Utc,则为 false。 |