TimeZoneInfo.ConvertTime Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mengonversi waktu ke waktu dalam zona waktu tertentu.
Overload
ConvertTime(DateTime, TimeZoneInfo) |
Mengonversi waktu ke waktu dalam zona waktu tertentu. |
ConvertTime(DateTimeOffset, TimeZoneInfo) |
Mengonversi waktu ke waktu dalam zona waktu tertentu. |
ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo) |
Mengonversi waktu dari satu zona waktu ke zona waktu lainnya. |
ConvertTime(DateTime, TimeZoneInfo)
- Sumber:
- TimeZoneInfo.cs
- Sumber:
- TimeZoneInfo.cs
- Sumber:
- TimeZoneInfo.cs
Mengonversi waktu ke waktu dalam zona waktu tertentu.
public:
static DateTime ConvertTime(DateTime dateTime, TimeZoneInfo ^ destinationTimeZone);
public static DateTime ConvertTime (DateTime dateTime, TimeZoneInfo destinationTimeZone);
static member ConvertTime : DateTime * TimeZoneInfo -> DateTime
Public Shared Function ConvertTime (dateTime As DateTime, destinationTimeZone As TimeZoneInfo) As DateTime
Parameter
- dateTime
- DateTime
Tanggal dan waktu untuk mengonversi.
- destinationTimeZone
- TimeZoneInfo
Zona waktu yang akan dikonversi dateTime
.
Mengembalikan
Tanggal dan waktu di zona waktu tujuan.
Pengecualian
Nilai parameter dateTime
mewakili waktu yang tidak valid.
Nilai parameter destinationTimeZone
null
.
Contoh
Contoh berikut mengonversi array nilai tanggal dan waktu ke waktu di zona Waktu Timur A.S. dan Kanada. Ini menunjukkan bahwa zona waktu sumber tergantung pada properti DateTime.Kind dari nilai DateTime sumber. Ini juga menggambarkan bahwa metode ConvertTime memperhitungkan penyesuaian zona waktu, karena penyesuaian zona waktu terjadi di zona waktu sumber dan tujuan pada pukul 2:00 A.M. pada 7 November 2010.
using System;
public class Example
{
public static void Main()
{
// Define times to be converted.
DateTime[] times = { new DateTime(2010, 1, 1, 0, 1, 0),
new DateTime(2010, 1, 1, 0, 1, 0, DateTimeKind.Utc),
new DateTime(2010, 1, 1, 0, 1, 0, DateTimeKind.Local),
new DateTime(2010, 11, 6, 23, 30, 0),
new DateTime(2010, 11, 7, 2, 30, 0) };
// Retrieve the time zone for Eastern Standard Time (U.S. and Canada).
TimeZoneInfo est;
try {
est = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
}
catch (TimeZoneNotFoundException) {
Console.WriteLine("Unable to retrieve the Eastern Standard time zone.");
return;
}
catch (InvalidTimeZoneException) {
Console.WriteLine("Unable to retrieve the Eastern Standard time zone.");
return;
}
// Display the current time zone name.
Console.WriteLine("Local time zone: {0}\n", TimeZoneInfo.Local.DisplayName);
// Convert each time in the array.
foreach (DateTime timeToConvert in times)
{
DateTime targetTime = TimeZoneInfo.ConvertTime(timeToConvert, est);
Console.WriteLine("Converted {0} {1} to {2}.", timeToConvert,
timeToConvert.Kind, targetTime);
}
}
}
// The example displays the following output:
// Local time zone: (GMT-08:00) Pacific Time (US & Canada)
//
// Converted 1/1/2010 12:01:00 AM Unspecified to 1/1/2010 3:01:00 AM.
// Converted 1/1/2010 12:01:00 AM Utc to 12/31/2009 7:01:00 PM.
// Converted 1/1/2010 12:01:00 AM Local to 1/1/2010 3:01:00 AM.
// Converted 11/6/2010 11:30:00 PM Unspecified to 11/7/2010 1:30:00 AM.
// Converted 11/7/2010 2:30:00 AM Unspecified to 11/7/2010 5:30:00 AM.
open System
// Define times to be converted.
let times =
[| DateTime(2010, 1, 1, 0, 1, 0)
DateTime(2010, 1, 1, 0, 1, 0, DateTimeKind.Utc)
DateTime(2010, 1, 1, 0, 1, 0, DateTimeKind.Local)
DateTime(2010, 11, 6, 23, 30, 0)
DateTime(2010, 11, 7, 2, 30, 0) |]
// Retrieve the time zone for Eastern Standard Time (U.S. and Canada).
try
let est = TimeZoneInfo.FindSystemTimeZoneById "Eastern Standard Time"
// Display the current time zone name.
printfn $"Local time zone: {TimeZoneInfo.Local.DisplayName}\n"
// Convert each time in the array.
for timeToConvert in times do
let targetTime = TimeZoneInfo.ConvertTime(timeToConvert, est)
printfn $"Converted {timeToConvert} {timeToConvert.Kind} to {targetTime}."
with
| :? TimeZoneNotFoundException ->
printfn "Unable to retrieve the Eastern Standard time zone."
| :? InvalidTimeZoneException ->
printfn "Unable to retrieve the Eastern Standard time zone."
// The example displays the following output:
// Local time zone: (GMT-08:00) Pacific Time (US & Canada)
//
// Converted 1/1/2010 12:01:00 AM Unspecified to 1/1/2010 3:01:00 AM.
// Converted 1/1/2010 12:01:00 AM Utc to 12/31/2009 7:01:00 PM.
// Converted 1/1/2010 12:01:00 AM Local to 1/1/2010 3:01:00 AM.
// Converted 11/6/2010 11:30:00 PM Unspecified to 11/7/2010 1:30:00 AM.
// Converted 11/7/2010 2:30:00 AM Unspecified to 11/7/2010 5:30:00 AM.
Module Example
Public Sub Main()
' Define times to be converted.
Dim times() As Date = { #1/1/2010 12:01AM#, _
DateTime.SpecifyKind(#1/1/2010 12:01AM#, DateTimeKind.Utc), _
DateTime.SpecifyKind(#1/1/2010 12:01AM#, DateTimeKind.Local), _
#11/6/2010 11:30PM#, #11/7/2010 2:30AM# }
' Retrieve the time zone for Eastern Standard Time (U.S. and Canada).
Dim est As TimeZoneInfo
Try
est = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time")
Catch e As TimeZoneNotFoundException
Console.WriteLine("Unable to retrieve the Eastern Standard time zone.")
Exit Sub
Catch e As InvalidTimeZoneException
Console.WriteLine("Unable to retrieve the Eastern Standard time zone.")
Exit Sub
End Try
' Display the current time zone name.
Console.WriteLine("Local time zone: {0}", TimeZoneInfo.Local.DisplayName)
Console.WriteLine()
' Convert each time in the array.
For Each timeToConvert As Date In times
Dim targetTime As Date = TimeZoneInfo.ConvertTime(timeToConvert, est)
Console.WriteLine("Converted {0} {1} to {2}.", timeToConvert, _
timeToConvert.Kind, targetTime)
Next
End Sub
End Module
' The example displays the following output:
' Local time zone: (GMT-08:00) Pacific Time (US & Canada)
'
' Converted 1/1/2010 12:01:00 AM Unspecified to 1/1/2010 3:01:00 AM.
' Converted 1/1/2010 12:01:00 AM Utc to 12/31/2009 7:01:00 PM.
' Converted 1/1/2010 12:01:00 AM Local to 1/1/2010 3:01:00 AM.
' Converted 11/6/2010 11:30:00 PM Unspecified to 11/7/2010 1:30:00 AM.
' Converted 11/7/2010 2:30:00 AM Unspecified to 11/7/2010 5:30:00 AM.
Keterangan
Saat melakukan konversi, metode ConvertTime(DateTimeOffset, TimeZoneInfo) menerapkan aturan penyesuaian apa pun yang berlaku di zona waktu destinationTimeZone
.
Kelebihan beban metode ConvertTime(DateTime, TimeZoneInfo) ini menentukan zona waktu sumber dari nilai properti Kind parameter dateTime
, seperti yang ditunjukkan tabel berikut.
Jenis nilai properti | Zona waktu sumber | Perilaku metode |
---|---|---|
DateTimeKind.Local | Local | Mengonversi waktu lokal ke waktu dalam destinationTimeZone . |
DateTimeKind.Utc | Utc | Mengonversi Waktu Universal Terkoordinasi (UTC) ke waktu dalam destinationTimeZone . |
DateTimeKind.Unspecified | Diasumsikan Local. | Mengonversi waktu lokal ke waktu dalam destinationTimeZone . |
Properti Kind dari nilai DateTime yang dikembalikan diatur seperti yang diperlihatkan dalam tabel berikut ini.
Keadaan | Nilai properti Kind yang Dikembalikan |
---|---|
destinationTimeZone
TimeZoneInfo.Utc. |
DateTimeKind.Utc |
destinationTimeZone
TimeZoneInfo.Local. |
DateTimeKind.Local |
Semua nilai tanggal dan waktu lainnya serta zona waktu tujuan. | DateTimeKind.Unspecified |
Jika nilai parameter dateTime
adalah waktu lokal yang ambigu, itu ditafsirkan sebagai waktu standar. Jika parameter dateTime
adalah waktu lokal yang tidak valid, metode ini akan menampilkan ArgumentException.
Jika konversi dateTime
menghasilkan nilai tanggal dan waktu yang lebih lama dari DateTime.MinValue atau lebih baru dari DateTime.MaxValue, metode ini mengembalikan DateTime.MinValue atau DateTime.MaxValue, masing-masing.
Anda juga dapat mengonversi ke atau dari UTC dengan memanggil metode ConvertTimeFromUtc dan ConvertTimeToUtc.
Lihat juga
Berlaku untuk
ConvertTime(DateTimeOffset, TimeZoneInfo)
- Sumber:
- TimeZoneInfo.cs
- Sumber:
- TimeZoneInfo.cs
- Sumber:
- TimeZoneInfo.cs
Mengonversi waktu ke waktu dalam zona waktu tertentu.
public:
static DateTimeOffset ConvertTime(DateTimeOffset dateTimeOffset, TimeZoneInfo ^ destinationTimeZone);
public static DateTimeOffset ConvertTime (DateTimeOffset dateTimeOffset, TimeZoneInfo destinationTimeZone);
static member ConvertTime : DateTimeOffset * TimeZoneInfo -> DateTimeOffset
Public Shared Function ConvertTime (dateTimeOffset As DateTimeOffset, destinationTimeZone As TimeZoneInfo) As DateTimeOffset
Parameter
- dateTimeOffset
- DateTimeOffset
Tanggal dan waktu untuk mengonversi.
- destinationTimeZone
- TimeZoneInfo
Zona waktu yang akan dikonversi dateTimeOffset
.
Mengembalikan
Tanggal dan waktu di zona waktu tujuan.
Pengecualian
Nilai parameter destinationTimeZone
null
.
Contoh
Contoh berikut mengonversi array nilai DateTimeOffset ke waktu di zona Waktu Timur A.S. dan Kanada. Ini menggambarkan bahwa metode ConvertTime memperhitungkan penyesuaian zona waktu, karena penyesuaian zona waktu terjadi di zona waktu sumber dan tujuan pada pukul 2:00 A.M. pada 7 November 2010.
using System;
public class Example
{
public static void Main()
{
// Define times to be converted.
DateTime time1 = new DateTime(2010, 1, 1, 12, 1, 0);
DateTime time2 = new DateTime(2010, 11, 6, 23, 30, 0);
DateTimeOffset[] times = { new DateTimeOffset(time1, TimeZoneInfo.Local.GetUtcOffset(time1)),
new DateTimeOffset(time1, TimeSpan.Zero),
new DateTimeOffset(time2, TimeZoneInfo.Local.GetUtcOffset(time2)),
new DateTimeOffset(time2.AddHours(3), TimeZoneInfo.Local.GetUtcOffset(time2.AddHours(3))) };
// Retrieve the time zone for Eastern Standard Time (U.S. and Canada).
TimeZoneInfo est;
try {
est = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
}
catch (TimeZoneNotFoundException) {
Console.WriteLine("Unable to retrieve the Eastern Standard time zone.");
return;
}
catch (InvalidTimeZoneException) {
Console.WriteLine("Unable to retrieve the Eastern Standard time zone.");
return;
}
// Display the current time zone name.
Console.WriteLine("Local time zone: {0}\n", TimeZoneInfo.Local.DisplayName);
// Convert each time in the array.
foreach (DateTimeOffset timeToConvert in times)
{
DateTimeOffset targetTime = TimeZoneInfo.ConvertTime(timeToConvert, est);
Console.WriteLine("Converted {0} to {1}.", timeToConvert, targetTime);
}
}
}
// The example displays the following output:
// Local time zone: (GMT-08:00) Pacific Time (US & Canada)
//
// Converted 1/1/2010 12:01:00 AM -08:00 to 1/1/2010 3:01:00 AM -05:00.
// Converted 1/1/2010 12:01:00 AM +00:00 to 12/31/2009 7:01:00 PM -05:00.
// Converted 11/6/2010 11:30:00 PM -07:00 to 11/7/2010 1:30:00 AM -05:00.
// Converted 11/7/2010 2:30:00 AM -08:00 to 11/7/2010 5:30:00 AM -05:00.
open System
// Define times to be converted.
let time1 = DateTime(2010, 1, 1, 12, 1, 0)
let time2 = DateTime(2010, 11, 6, 23, 30, 0)
let times =
[| DateTimeOffset(time1, TimeZoneInfo.Local.GetUtcOffset time1)
DateTimeOffset(time1, TimeSpan.Zero)
DateTimeOffset(time2, TimeZoneInfo.Local.GetUtcOffset time2)
DateTimeOffset(time2.AddHours 3, TimeZoneInfo.Local.GetUtcOffset(time2.AddHours 3)) |]
// Retrieve the time zone for Eastern Standard Time (U.S. and Canada).
try
let est = TimeZoneInfo.FindSystemTimeZoneById "Eastern Standard Time"
// Display the current time zone name.
printfn $"Local time zone: {TimeZoneInfo.Local.DisplayName}\n"
// Convert each time in the array.
for timeToConvert in times do
let targetTime = TimeZoneInfo.ConvertTime(timeToConvert, est)
printfn $"Converted {timeToConvert} to {targetTime}."
with
| :? TimeZoneNotFoundException ->
printfn "Unable to retrieve the Eastern Standard time zone."
| :? InvalidTimeZoneException ->
printfn "Unable to retrieve the Eastern Standard time zone."
// The example displays the following output:
// Local time zone: (GMT-08:00) Pacific Time (US & Canada)
//
// Converted 1/1/2010 12:01:00 AM -08:00 to 1/1/2010 3:01:00 AM -05:00.
// Converted 1/1/2010 12:01:00 AM +00:00 to 12/31/2009 7:01:00 PM -05:00.
// Converted 11/6/2010 11:30:00 PM -07:00 to 11/7/2010 1:30:00 AM -05:00.
// Converted 11/7/2010 2:30:00 AM -08:00 to 11/7/2010 5:30:00 AM -05:00.
Module Example
Public Sub Main()
' Define times to be converted.
Dim time1 As Date = #1/1/2010 12:01AM#
Dim time2 As Date = #11/6/2010 11:30PM#
Dim times() As DateTimeOffset = { New DateTimeOffset(time1, TimeZoneInfo.Local.GetUtcOffset(time1)), _
New DateTimeOffset(time1, Timespan.Zero), _
New DateTimeOffset(time2, TimeZoneInfo.Local.GetUtcOffset(time2)), _
New DateTimeOffset(time2.AddHours(3), TimeZoneInfo.Local.GetUtcOffset(time2.AddHours(3))) }
' Retrieve the time zone for Eastern Standard Time (U.S. and Canada).
Dim est As TimeZoneInfo
Try
est = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time")
Catch e As TimeZoneNotFoundException
Console.WriteLine("Unable to retrieve the Eastern Standard time zone.")
Exit Sub
Catch e As InvalidTimeZoneException
Console.WriteLine("Unable to retrieve the Eastern Standard time zone.")
Exit Sub
End Try
' Display the current time zone name.
Console.WriteLine("Local time zone: {0}", TimeZoneInfo.Local.DisplayName)
Console.WriteLine()
' Convert each time in the array.
For Each timeToConvert As DateTimeOffset In times
Dim targetTime As DateTimeOffset = TimeZoneInfo.ConvertTime(timeToConvert, est)
Console.WriteLine("Converted {0} to {1}.", timeToConvert, targetTime)
Next
End Sub
End Module
' The example displays the following output:
' Local time zone: (GMT-08:00) Pacific Time (US & Canada)
'
' Converted 1/1/2010 12:01:00 AM -08:00 to 1/1/2010 3:01:00 AM -05:00.
' Converted 1/1/2010 12:01:00 AM +00:00 to 12/31/2009 7:01:00 PM -05:00.
' Converted 11/6/2010 11:30:00 PM -07:00 to 11/7/2010 1:30:00 AM -05:00.
' Converted 11/7/2010 2:30:00 AM -08:00 to 11/7/2010 5:30:00 AM -05:00.
Keterangan
Saat melakukan konversi, metode ConvertTime(DateTimeOffset, TimeZoneInfo) menerapkan aturan penyesuaian apa pun yang berlaku di zona waktu destinationTimeZone
.
Kelebihan beban ini berbeda dari kelebihan beban lain dari metode ConvertTime dengan menerima nilai DateTimeOffset sebagai parameter pertamanya. Ini mengidentifikasi tanggal dan waktu sebagai offset dari Waktu Universal Terkoordinasi (UTC) daripada sebagai tanggal dan waktu di zona waktu tertentu. Akibatnya, parameter dateTimeOffset
tidak dapat mewakili waktu ambigu atau waktu yang tidak valid.
Dalam mengonversi nilai dateTimeOffset
ke waktu di zona waktu tujuan, metode ini memperhitungkan aturan penyesuaian apa pun yang berlaku di zona waktu tujuan.
Jika konversi dateTimeOffset
menghasilkan nilai tanggal dan waktu yang lebih lama dari DateTimeOffset.MinValue atau lebih baru dari DateTimeOffset.MaxValue, metode ini mengembalikan DateTimeOffset.MinValue atau DateTimeOffset.MaxValue, masing-masing.
Lihat juga
Berlaku untuk
ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo)
- Sumber:
- TimeZoneInfo.cs
- Sumber:
- TimeZoneInfo.cs
- Sumber:
- TimeZoneInfo.cs
Mengonversi waktu dari satu zona waktu ke zona waktu lainnya.
public:
static DateTime ConvertTime(DateTime dateTime, TimeZoneInfo ^ sourceTimeZone, TimeZoneInfo ^ destinationTimeZone);
public static DateTime ConvertTime (DateTime dateTime, TimeZoneInfo sourceTimeZone, TimeZoneInfo destinationTimeZone);
static member ConvertTime : DateTime * TimeZoneInfo * TimeZoneInfo -> DateTime
Public Shared Function ConvertTime (dateTime As DateTime, sourceTimeZone As TimeZoneInfo, destinationTimeZone As TimeZoneInfo) As DateTime
Parameter
- dateTime
- DateTime
Tanggal dan waktu untuk mengonversi.
- sourceTimeZone
- TimeZoneInfo
Zona waktu dateTime
.
- destinationTimeZone
- TimeZoneInfo
Zona waktu yang akan dikonversi dateTime
.
Mengembalikan
Tanggal dan waktu di zona waktu tujuan yang sesuai dengan parameter dateTime
di zona waktu sumber.
Pengecualian
Properti Kind dari parameter dateTime
Local, tetapi parameter sourceTimeZone
tidak sama dengan Local.
-atau-
Properti Kind dari parameter dateTime
Utc, tetapi parameter sourceTimeZone
tidak sama dengan Utc.
-atau-
Parameter dateTime
adalah waktu yang tidak valid (yaitu, ini mewakili waktu yang tidak ada karena aturan penyesuaian zona waktu).
Contoh
Contoh berikut mengilustrasikan penggunaan metode ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo) untuk mengonversi dari Waktu Standar Hawaii ke waktu lokal.
DateTime hwTime = new DateTime(2007, 02, 01, 08, 00, 00);
try
{
TimeZoneInfo hwZone = TimeZoneInfo.FindSystemTimeZoneById("Hawaiian Standard Time");
Console.WriteLine("{0} {1} is {2} local time.",
hwTime,
hwZone.IsDaylightSavingTime(hwTime) ? hwZone.DaylightName : hwZone.StandardName,
TimeZoneInfo.ConvertTime(hwTime, hwZone, TimeZoneInfo.Local));
}
catch (TimeZoneNotFoundException)
{
Console.WriteLine("The registry does not define the Hawaiian Standard Time zone.");
}
catch (InvalidTimeZoneException)
{
Console.WriteLine("Registry data on the Hawaiian Standard Time zone has been corrupted.");
}
let hwTime = DateTime(2007, 02, 01, 08, 00, 00)
try
let hwZone = TimeZoneInfo.FindSystemTimeZoneById "Hawaiian Standard Time"
printfn $"{hwTime} {if hwZone.IsDaylightSavingTime hwTime then hwZone.DaylightName else hwZone.StandardName} is {TimeZoneInfo.ConvertTime(hwTime, hwZone, TimeZoneInfo.Local)} local time."
with
| :? TimeZoneNotFoundException ->
printfn "The registry does not define the Hawaiian Standard Time zone."
| :? InvalidTimeZoneException ->
printfn "Registry data on the Hawaiian Standard Time zone has been corrupted."
Dim hwTime As Date = #2/01/2007 8:00:00 AM#
Try
Dim hwZone As TimeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("Hawaiian Standard Time")
Console.WriteLine("{0} {1} is {2} local time.", _
hwTime, _
IIf(hwZone.IsDaylightSavingTime(hwTime), hwZone.DaylightName, hwZone.StandardName), _
TimeZoneInfo.ConvertTime(hwTime, hwZone, TimeZoneInfo.Local))
Catch e As TimeZoneNotFoundException
Console.WriteLine("The registry does not define the Hawaiian Standard Time zone.")
Catch e As InvalidTimeZoneException
Console.WriteLine("Registry data on the Hawaiian Standard Time zone has been corrupted.")
End Try
Keterangan
Saat melakukan konversi, metode ConvertTime menerapkan aturan penyesuaian apa pun yang berlaku di zona waktu destinationTimeZone
.
Nilai properti Kind parameter dateTime
harus sesuai dengan parameter sourceTimeZone
, seperti yang ditunjukkan tabel berikut.
Nilai DateTime.Kind | nilai sourceTimeZone | Perilaku metode |
---|---|---|
DateTimeKind.Utc | Sama dengan TimeZoneInfo.Utc. | Mengonversi dateTime ke waktu zona waktu tujuan. |
DateTimeKind.Utc | Tidak sama dengan TimeZoneInfo.Utc. | Melemparkan ArgumentException. |
DateTimeKind.Local | Sama dengan TimeZoneInfo.Local. | Mengonversi dateTime ke waktu zona waktu tujuan. |
DateTimeKind.Local | Tidak sama dengan TimeZoneInfo.Local. | Melemparkan ArgumentException. |
DateTimeKind.Unspecified | Setiap. | Mengonversi dateTime ke waktu zona waktu tujuan. |
Anda juga dapat mengonversi ke atau dari Waktu Universal Terkoordinasi (UTC) dengan memanggil metode ConvertTimeFromUtc dan ConvertTimeToUtc.
Properti Kind dari nilai DateTime yang dikembalikan diatur seperti yang diperlihatkan dalam tabel berikut ini.
Keadaan | Nilai properti Kind yang Dikembalikan |
---|---|
Argumen destinationTimeZone TimeZoneInfo.Utc. |
DateTimeKind.Utc |
Argumen destinationTimeZone TimeZoneInfo.Local. |
DateTimeKind.Local |
Semua nilai tanggal dan waktu lainnya, zona waktu sumber, dan zona waktu tujuan. | DateTimeKind.Unspecified |
Jika nilai parameter dateTime
adalah waktu ambigu di zona waktu sumber, itu ditafsirkan sebagai waktu standar. Jika parameter dateTime
adalah waktu yang tidak valid di zona waktu sumber, metode ini akan menampilkan ArgumentException.
Jika konversi dateTime
menghasilkan nilai tanggal dan waktu yang lebih lama dari DateTime.MinValue atau lebih baru dari DateTime.MaxValue, metode ini mengembalikan DateTime.MinValue atau DateTime.MaxValue, masing-masing.
Metode ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo) melemparkan pengecualian ArgumentException jika properti DateTime.Kind argumen dateTime
DateTimeKind.Local tetapi argumen sourceTimeZone
tidak TimeZoneInfo.Local. Untuk menentukan apakah zona waktu sumber adalah zona waktu lokal atau zona waktu universal, metode menguji kesetaraan referensi alih-alih menguji kesetaraan nilai dengan metode Equals(TimeZoneInfo). Perhatikan bahwa TimeZoneInfo objek yang mewakili zona waktu lokal dan yang diambil dengan memanggil metode FindSystemTimeZoneById tidak memiliki kesetaraan referensial dengan TimeZoneInfo.Local. Selain itu, TimeZoneInfo objek yang mewakili zona waktu lokal atau universal dan yang diambil dengan mengulangi koleksi yang dikembalikan oleh metode GetSystemTimeZones tidak memiliki kesetaraan referensial dengan TimeZoneInfo.Local atau TimeZoneInfo.Utc. Sebagai alternatif, Anda dapat memanggil metode ConvertTimeBySystemTimeZoneId(DateTime, String, String).