TimeZoneInfo.IsAmbiguousTime 方法

定义

确定特定时区中的特定日期和时间是否不明确以及是否可以映射至两个或多个协调世界时 (UTC) 时间。

重载

IsAmbiguousTime(DateTime)

确定特定时区中的特定日期和时间是否不明确以及是否可以映射至两个或多个协调世界时 (UTC) 时间。

IsAmbiguousTime(DateTimeOffset)

确定特定时区中的特定日期和时间是否不明确以及是否可以映射至两个或多个协调世界时 (UTC) 时间。

IsAmbiguousTime(DateTime)

Source:
TimeZoneInfo.cs
Source:
TimeZoneInfo.cs
Source:
TimeZoneInfo.cs

确定特定时区中的特定日期和时间是否不明确以及是否可以映射至两个或多个协调世界时 (UTC) 时间。

public:
 bool IsAmbiguousTime(DateTime dateTime);
public bool IsAmbiguousTime (DateTime dateTime);
member this.IsAmbiguousTime : DateTime -> bool
Public Function IsAmbiguousTime (dateTime As DateTime) As Boolean

参数

dateTime
DateTime

日期和时间值。

返回

如果 dateTime 参数不明确,则为 true;否则为 false

例外

dateTime 值的 Kind 属性的值为 Local,而 dateTime 是无效时间。

示例

在太平洋时区,夏令时结束于 2007 年 11 月 4 日凌晨 2:00。 以下示例以 1 分钟间隔将时间从 2007 年 11 月 4 日凌晨 12:59 到 2007 年 11 月 4 日凌晨 2:01,传递给 IsAmbiguousTime(DateTime) 表示太平洋时区的 TimeZoneInfo 对象的 方法。 控制台输出指示从 2007 年 11 月 4 日凌晨 1:00 到 2007 年 11 月 4 日凌晨 1:59 的所有时间都模棱两可。

   // Specify DateTimeKind in Date constructor
   DateTime baseTime = new DateTime(2007, 11, 4, 0, 59, 00, DateTimeKind.Unspecified);
   DateTime newTime;

   // Get Pacific Standard Time zone
   TimeZoneInfo pstZone = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time");

   // List possible ambiguous times for 63-minute interval, from 12:59 AM to 2:01 AM 
   for (int ctr = 0; ctr < 63; ctr++)
   {
      // Because of assignment, newTime.Kind is also DateTimeKind.Unspecified
      newTime = baseTime.AddMinutes(ctr);   
      Console.WriteLine("{0} is ambiguous: {1}", newTime, pstZone.IsAmbiguousTime(newTime));
   }
// Specify DateTimeKind in Date constructor
let baseTime = DateTime(2007, 11, 4, 0, 59, 00, DateTimeKind.Unspecified)

// Get Pacific Standard Time zone
let pstZone = TimeZoneInfo.FindSystemTimeZoneById "Pacific Standard Time"

// List possible ambiguous times for 63-minute interval, from 12:59 AM to 2:01 AM 
for i = 0 to 62 do
// Because of assignment, newTime.Kind is also DateTimeKind.Unspecified
    let newTime = baseTime.AddMinutes i   
    printfn $"{newTime} is ambiguous: {pstZone.IsAmbiguousTime newTime}"
' Specify DateTimeKind in Date constructor
Dim baseTime As New Date(2007, 11, 4, 0, 59, 00, DateTimeKind.Unspecified)
Dim newTime As Date

' Get Pacific Standard Time zone
Dim pstZone As TimeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time")

' List possible ambiguous times for 63-minute interval, from 12:59 AM to 2:01 AM 
For ctr As Integer = 0 To 62
   ' Because of assignment, newTime.Kind is also DateTimeKind.Unspecified
   newTime = baseTime.AddMinutes(ctr)   
   Console.WriteLine("{0} is ambiguous: {1}", newTime, pstZone.IsAmbiguousTime(newTime))
Next

注解

不明确的时间在当前时区的一定时间范围内。 这意味着它可以是标准时间,也可以是应用调整规则所导致的时间。 通常,当时钟设置为从夏令时返回到标准时间时,会导致时间不明确。 有关插图,请参阅示例部分。

协调世界时 (UTC) 没有歧义的时间:不支持夏令时的时区也不行。 因此,这些时区没有调整规则,对 方法的 IsAmbiguousTime 调用始终返回 false

对于确实遵守夏令时的时区,此方法的精确行为取决于 属性和 TimeZoneInfo 对象之间的关系Kind,如下表所示。

TimeZoneInfo 对象类型 Kind 属性值 行为
TimeZoneInfo.Local DateTimeKind.LocalDateTimeKind.Unspecified 确定 参数是否 dateTime 不明确。
TimeZoneInfo.Local DateTimeKind.Utc dateTime转换为本地时间,然后确定该时间是否不明确。
TimeZoneInfo.Utc DateTimeKind.UtcDateTimeKind.Unspecified 返回 false
TimeZoneInfo.Utc DateTimeKind.Local 如果 dateTime 不明确,则假定它是标准时间,将其转换为 UTC,并返回 false
任何其他时区。 DateTimeKind.LocalDateTimeKind.Utc dateTime转换为指定时区中的时间,然后确定该时间是否不明确。
任何其他时区。 DateTimeKind.Unspecified 确定是否 dateTime 不明确。

另请参阅

适用于

IsAmbiguousTime(DateTimeOffset)

Source:
TimeZoneInfo.cs
Source:
TimeZoneInfo.cs
Source:
TimeZoneInfo.cs

确定特定时区中的特定日期和时间是否不明确以及是否可以映射至两个或多个协调世界时 (UTC) 时间。

public:
 bool IsAmbiguousTime(DateTimeOffset dateTimeOffset);
public bool IsAmbiguousTime (DateTimeOffset dateTimeOffset);
member this.IsAmbiguousTime : DateTimeOffset -> bool
Public Function IsAmbiguousTime (dateTimeOffset As DateTimeOffset) As Boolean

参数

dateTimeOffset
DateTimeOffset

日期和时间。

返回

如果 dateTimeOffset 参数在当前时区中不明确,则为 true;否则为 false

注解

不明确的时间在当前时区的一定时间范围内。 这意味着它可以是标准时间,也可以是应用调整规则所导致的时间。 通常,当时钟设置为从夏令时返回到标准时间时,会导致时间不明确。 协调世界时 (UTC) 没有歧义的时间:不支持夏令时的时区也不行。

方法的精确行为取决于 参数的 OffsetdateTimeOffset 属性与当前时区之间的关系。 如果 属性的值 Offset 是当前时区的 UTC 的可能偏移量,则 方法将确定该日期和时间是否不明确。 否则,它会转换为 dateTimeOffset 当前时区中的时间,然后确定该日期和时间是否不明确。

适用于