Baca dalam bahasa Inggris

Bagikan melalui


TimeZoneInfo.GetAmbiguousTimeOffsets Metode

Definisi

Mengembalikan informasi tentang kemungkinan tanggal dan waktu yang dapat dipetakan oleh tanggal dan waktu ambigu.

Overload

GetAmbiguousTimeOffsets(DateTime)

Mengembalikan informasi tentang kemungkinan tanggal dan waktu yang dapat dipetakan oleh tanggal dan waktu ambigu.

GetAmbiguousTimeOffsets(DateTimeOffset)

Mengembalikan informasi tentang kemungkinan tanggal dan waktu yang dapat dipetakan oleh tanggal dan waktu ambigu.

GetAmbiguousTimeOffsets(DateTime)

Sumber:
TimeZoneInfo.cs
Sumber:
TimeZoneInfo.cs
Sumber:
TimeZoneInfo.cs

Mengembalikan informasi tentang kemungkinan tanggal dan waktu yang dapat dipetakan oleh tanggal dan waktu ambigu.

C#
public TimeSpan[] GetAmbiguousTimeOffsets(DateTime dateTime);

Parameter

dateTime
DateTime

Tanggal dan waktu.

Mengembalikan

Array objek yang mewakili kemungkinan offset Waktu Universal Terkoordinasi (UTC) yang dapat dipetakan oleh tanggal dan waktu tertentu.

Pengecualian

dateTime bukan waktu yang ambigu.

Contoh

Contoh berikut mendefinisikan metode bernama ShowPossibleUtcTimes yang menggunakan GetAmbiguousTimeOffsets(DateTime) metode untuk memetakan waktu ambigu ke kemungkinan waktu Waktu Universal Terkoordinasi (UTC) yang sesuai.

C#
private void ShowPossibleUtcTimes(DateTime ambiguousTime, TimeZoneInfo timeZone)
{
   // Determine if time is ambiguous in target time zone
   if (!timeZone.IsAmbiguousTime(ambiguousTime))
   {
      Console.WriteLine("{0} is not ambiguous in time zone {1}.", 
                        ambiguousTime, 
                        timeZone.DisplayName);
   }
   else
   {
      // Display time and its time zone (local, UTC, or indicated by timeZone argument)
      string originalTimeZoneName; 
      if (ambiguousTime.Kind == DateTimeKind.Utc)
         originalTimeZoneName = "UTC";
      else if (ambiguousTime.Kind == DateTimeKind.Local)
         originalTimeZoneName = "local time";
      else
         originalTimeZoneName = timeZone.DisplayName;

      Console.WriteLine("{0} {1} maps to the following possible times:", 
                        ambiguousTime, originalTimeZoneName);
      // Get ambiguous offsets 
      TimeSpan[] offsets = timeZone.GetAmbiguousTimeOffsets(ambiguousTime);
      // Handle times not in time zone of timeZone argument
      // Local time where timeZone is not local zone
      if ((ambiguousTime.Kind == DateTimeKind.Local) && ! timeZone.Equals(TimeZoneInfo.Local)) 
         ambiguousTime = TimeZoneInfo.ConvertTime(ambiguousTime, TimeZoneInfo.Local, timeZone);
      // UTC time where timeZone is not UTC zone   
      else if ((ambiguousTime.Kind == DateTimeKind.Utc) && ! timeZone.Equals(TimeZoneInfo.Utc))
         ambiguousTime = TimeZoneInfo.ConvertTime(ambiguousTime, TimeZoneInfo.Utc, timeZone);

      // Display each offset and its mapping to UTC
      foreach (TimeSpan offset in offsets)
      {
         if (offset.Equals(timeZone.BaseUtcOffset))
            Console.WriteLine("If {0} is {1}, {2} UTC", ambiguousTime, timeZone.StandardName, ambiguousTime - offset);
         else
            Console.WriteLine("If {0} is {1}, {2} UTC", ambiguousTime, timeZone.DaylightName, ambiguousTime - offset);
      }
   }            
}

Metode kemudian dapat dipanggil menggunakan kode seperti berikut:

C#
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
//

Keterangan

Perilaku yang tepat dari metode ini tergantung pada hubungan antara Kind properti dan TimeZoneInfo objek , seperti yang ditunjukkan tabel berikut.

Jenis objek TimeZoneInfo Jenis nilai properti Aktivitas
TimeZoneInfo.Local DateTimeKind.Local atau DateTimeKind.Unspecified Mengembalikan offset waktu ambigu untuk dateTime.
TimeZoneInfo.Local DateTimeKind.Utc dateTime Mengonversi ke waktu lokal, lalu mengembalikan offset waktu ambigu untuk waktu tersebut.
TimeZoneInfo.Utc Nilai apa pun. ArgumentExceptionMelempar .
Zona waktu lainnya. Local atau DateTimeKind.Utc dateTime Mengonversi ke zona waktu yang ditentukan, lalu menentukan apakah waktu tersebut ambigu.
Zona waktu lainnya. DateTimeKind.Unspecified Menentukan apakah dateTime ambigu dalam zona waktu yang ditentukan.

Urutan TimeSpan objek dalam array yang dikembalikan oleh metode ini tidak terdefinisi. Namun, Anda dapat menentukan elemen mana yang mewakili offset dari waktu standar zona waktu dengan membandingkan nilainya dengan properti zona BaseUtcOffset waktu. Untuk memetakan waktu ambigu ke waktu standar zona waktu, lihat Cara: Mengatasi Waktu Ambigu.

Lihat juga

Berlaku untuk

.NET 10 dan versi lainnya
Produk Versi
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

GetAmbiguousTimeOffsets(DateTimeOffset)

Sumber:
TimeZoneInfo.cs
Sumber:
TimeZoneInfo.cs
Sumber:
TimeZoneInfo.cs

Mengembalikan informasi tentang kemungkinan tanggal dan waktu yang dapat dipetakan oleh tanggal dan waktu ambigu.

C#
public TimeSpan[] GetAmbiguousTimeOffsets(DateTimeOffset dateTimeOffset);

Parameter

dateTimeOffset
DateTimeOffset

Tanggal dan waktu.

Mengembalikan

Array objek yang mewakili kemungkinan offset Waktu Universal Terkoordinasi (UTC) yang dapat dipetakan oleh tanggal dan waktu tertentu.

Pengecualian

dateTimeOffset bukan waktu yang ambigu.

Keterangan

Perilaku yang tepat dari metode ini tergantung pada hubungan antara Offset properti dateTimeOffset parameter dan TimeZoneInfo objek . Jika nilai Offset properti sesuai dengan kemungkinan offset zona waktu saat ini dari Waktu Universal Terkoordinasi (UTC) untuk tanggal dan waktu tersebut, metode mengembalikan kemungkinan offset. Jika tidak, ini mengonversi dateTimeOffset ke waktu di zona waktu saat ini, lalu mengembalikan kemungkinan offset tanggal dan waktu tersebut.

Urutan TimeSpan objek dalam array yang dikembalikan oleh metode ini tidak terdefinisi. Namun, Anda dapat menentukan elemen mana yang mewakili offset dari waktu standar zona waktu dengan membandingkan nilainya dengan properti zona BaseUtcOffset waktu. Untuk memetakan waktu ambigu ke waktu standar zona waktu, lihat Cara: Mengatasi Waktu Ambigu.

Lihat juga

Berlaku untuk

.NET 10 dan versi lainnya
Produk Versi
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0