System.TimeZoneInfo.GetAmbiguousTimeOffsets 方法 (DateTime)

方法描述

返回不明确的日期和时间可能映射到的日期和时间的相关信息。

语法定义(C# System.TimeZoneInfo.GetAmbiguousTimeOffsets 方法 (DateTime) 的用法)

public TimeSpan[] GetAmbiguousTimeOffsets(
	DateTime dateTime
)

参数/返回值

参数值/返回值 参数类型/返回类型 参数描述/返回描述
dateTime System-DateTime 日期和时间。
返回值 System.TimeSpan[] 对象的数组,它表示特定日期和时间可以映射到的可能的协调世界时 (UTC) 偏移量。

提示和注释

此方法的确切行为取决于 Kind 属性和 TimeZoneInfo 对象之间的关系,如下表所示。

TimeZoneInfo 对象类型

Kind 属性值

行为

TimeZoneInfo.Local

DateTimeKind.Local 或 DateTimeKind.Unspecified

返回 dateTime 的不明确的时间偏移量。

TimeZoneInfo.Local

DateTimeKind.Utc

将 dateTime 转换为本地时间,然后返回该时间的不明确的时间偏移量。

TimeZoneInfo.Utc

任意值。

引发 ArgumentException。

任何其他时区。

Local 或 DateTimeKind.Utc

将 dateTime 转换为指定的时区,然后确定该时间是否不明确。

任何其他时区。

DateTimeKind.Unspecified

确定 dateTime 在指定时区中是否不明确。

尚未定义 TimeSpan 对象在该方法返回的数组中的顺序。 但可以通过比较数组元素值与时区的 BaseUtcOffset 属性,来确定哪个元素表示与时区标准时间的偏移量。 若要将不明确的时间映射至时区的标准时间,请参见如何:解决不明确的时间。

对调用者的说明

在 Windows XP 系统上,此方法仅在确定 dateTime 是否含糊不清时适用当前调整规则(如果当前实例是 TimeZoneInfo.Local)。 因此,该方法在当前调整规则生效之前可能无法准确报告不明确的时间偏移量。 有关更多信息,请参见 Local 属性中的“调用方说明”一节。

System.TimeZoneInfo.GetAmbiguousTimeOffsets 方法 (DateTime)例子

然后,可使用如下所示的代码调用该方法:

Console.WriteLine();
ShowPossibleUtcTimes(new DateTime(2007, 11, 4, 1, 0, 0), 
                     TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time"));
Console.WriteLine();
ShowPossibleUtcTimes(new DateTime(2007, 11, 4, 01, 00, 00, DateTimeKind.Local), 
                     TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time"));
Console.WriteLine();
ShowPossibleUtcTimes(new DateTime(2007, 11, 4, 00, 00, 00, DateTimeKind.Local), 
                     TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time"));
Console.WriteLine();                     
ShowPossibleUtcTimes(new DateTime(2007, 11, 4, 01, 00, 00, DateTimeKind.Unspecified), 
                     TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time"));
Console.WriteLine();
ShowPossibleUtcTimes(new DateTime(2007, 11, 4, 07, 00, 00, DateTimeKind.Utc), 
                     TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time"));
// 
// This example produces the following output if run in the Pacific time zone:
//
//    11/4/2007 1:00:00 AM (GMT-06:00) Central Time (US & Canada) maps to the following possible times:
//    If 11/4/2007 1:00:00 AM is Central Standard Time, 11/4/2007 7:00:00 AM UTC
//    If 11/4/2007 1:00:00 AM is Central Daylight Time, 11/4/2007 6:00:00 AM UTC
//       
//    11/4/2007 1:00:00 AM Pacific Standard Time is not ambiguous in time zone (GMT-06:00) Central Time (US & Canada).
//     
//    11/4/2007 12:00:00 AM local time maps to the following possible times:
//    If 11/4/2007 1:00:00 AM is Central Standard Time, 11/4/2007 7:00:00 AM UTC
//    If 11/4/2007 1:00:00 AM is Central Daylight Time, 11/4/2007 6:00:00 AM UTC
//    
//    11/4/2007 1:00:00 AM (GMT-06:00) Central Time (US & Canada) maps to the following possible times:
//    If 11/4/2007 1:00:00 AM is Central Standard Time, 11/4/2007 7:00:00 AM UTC
//    If 11/4/2007 1:00:00 AM is Central Daylight Time, 11/4/2007 6:00:00 AM UTC
//       
//    11/4/2007 7:00:00 AM UTC maps to the following possible times:
//    If 11/4/2007 1:00:00 AM is Central Standard Time, 11/4/2007 7:00:00 AM UTC
//    If 11/4/2007 1:00:00 AM is Central Daylight Time, 11/4/2007 6:00:00 AM UTC
//

异常

异常 异常描述
ArgumentException dateTime 是明确的时间。

命名空间

namespace: System

程序集: mscorlib(在 mscorlib.dll 中)

版本信息

.NET Framework 受以下版本支持:4、3.5 .NET Framework Client Profile 受以下版本支持:4、3.5 SP1

适用平台

Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2 .NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。