时区支持
在NET Framework 之前我们只能使用TimeZone来表示一个时区但是Timezone功能很有限它只能识别本地时区可以在UTC和本地时间之间转换时间而TimeZoneInfo 对TimeZone进行了很大的增强它可以表示世界上的任意时区 看下面一段代码
static void Main(string[] args)
{
TimeZone timeZoneA = TimeZoneCurrentTimeZone;
ConsoleWriteLine(timeZoneAStandardName);
TimeZoneInfo timeZoneB = TimeZoneInfoLocal;
ConsoleWriteLine(timeZoneBStandardName);
TimeZoneInfo timeZoneC = TimeZoneInfoUtc;
ConsoleWriteLine(timeZoneCStandardName);
}
输出结果如下图所示
TimeZone提供的属性和方法非常有限TimeZoneInfo在这方面就显的非常丰富我们可以使用TimeZoneInfo在两个不同的时区之间转换时间如下面的代码
static void Main(string[] args)
{
DateTimeOffset chinaDate = DateTimeOffsetNow;
DateTimeOffset easternDate = TimeZoneInfoConvertTime(
chinaDate
TimeZoneInfoFindSystemTimeZoneById(Eastern Standard Time));
ConsoleWriteLine(Now: {} chinaDate);
ConsoleWriteLine(Now in Eastern: {} easternDate);
}
输出结果如下图所示
这里使用FindSystemTimeZoneById方法来根据ID来获取时区在推出TimeZoneInfo之后在以后的开发中完全可以放弃TimeZone类了TimeZoneInfo已经完全包含了它
总结
本文介绍了NET Framework中对于日期时间类型的支持希望对大家有所帮助
[] [] [] [] [] [] []