Share via


TimeZoneInfo.ConvertTimeBySystemTimeZoneId Metode

Definisi

Mengonversi waktu ke waktu di zona waktu lain berdasarkan pengidentifikasi zona waktu.

Overload

ConvertTimeBySystemTimeZoneId(DateTime, String)

Mengonversi waktu ke waktu di zona waktu lain berdasarkan pengidentifikasi zona waktu.

ConvertTimeBySystemTimeZoneId(DateTimeOffset, String)

Mengonversi waktu ke waktu di zona waktu lain berdasarkan pengidentifikasi zona waktu.

ConvertTimeBySystemTimeZoneId(DateTime, String, String)

Mengonversi waktu dari satu zona waktu ke zona waktu lainnya berdasarkan pengidentifikasi zona waktu.

ConvertTimeBySystemTimeZoneId(DateTime, String)

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

Mengonversi waktu ke waktu di zona waktu lain berdasarkan pengidentifikasi zona waktu.

public:
 static DateTime ConvertTimeBySystemTimeZoneId(DateTime dateTime, System::String ^ destinationTimeZoneId);
public static DateTime ConvertTimeBySystemTimeZoneId (DateTime dateTime, string destinationTimeZoneId);
static member ConvertTimeBySystemTimeZoneId : DateTime * string -> DateTime
Public Shared Function ConvertTimeBySystemTimeZoneId (dateTime As DateTime, destinationTimeZoneId As String) As DateTime

Parameter

dateTime
DateTime

Tanggal dan waktu untuk mengonversi.

destinationTimeZoneId
String

Pengidentifikasi zona waktu tujuan.

Mengembalikan

Tanggal dan waktu di zona waktu tujuan.

Pengecualian

destinationTimeZoneIdadalah null.

Pengidentifikasi zona waktu ditemukan, tetapi data registri rusak.

Proses ini tidak memiliki izin yang diperlukan untuk membaca dari kunci registri yang berisi informasi zona waktu.

Pengidentifikasi destinationTimeZoneId tidak ditemukan pada sistem lokal.

Keterangan

Saat melakukan konversi, ConvertTimeBySystemTimeZoneId metode menerapkan aturan penyesuaian apa pun yang berlaku di destinationTimeZoneId zona waktu.

Kelebihan beban ini sebagian besar identik dengan memanggil ConvertTime(DateTime, TimeZoneInfo) metode , kecuali memungkinkan Anda menentukan zona waktu tujuan dengan pengidentifikasinya daripada dengan referensi objek. Metode ini paling berguna ketika Anda harus mengonversi waktu tanpa mengambil objek zona waktu yang sesuai dengannya dan Anda tidak perlu tahu apakah waktu yang dikonversi adalah waktu standar atau musim panas.

Metode ConvertTimeBySystemTimeZoneId(DateTime, String) menentukan zona waktu sumber dari nilai dateTime properti parameter Kind , seperti yang ditunjukkan tabel berikut.

Jenis nilai properti Zona waktu sumber Perilaku metode
DateTimeKind.Local Local Mengonversi waktu lokal ke waktu di destinationTimeZone.
DateTimeKind.Utc Utc Mengonversi Waktu Universal Terkoordinasi (UTC) ke waktu di destinationTimeZone.
DateTimeKind.Unspecified Diasumsikan sebagai Local. Mengonversi waktu lokal ke waktu di destinationTimeZone.

Kind Properti nilai yang dikembalikan DateTime diatur seperti yang diperlihatkan dalam tabel berikut ini.

Kondisi Nilai properti Jenis yang Dikembalikan
destinationTimeZone adalah TimeZoneInfo.Utc.Id. DateTimeKind.Utc
Nilai lainnya destinationTimeZone . DateTimeKind.Unspecified

Jika nilai dateTime parameter adalah waktu lokal yang ambigu, nilai tersebut ditafsirkan sebagai waktu standar. dateTime Jika parameter adalah waktu lokal yang tidak valid, metode ini melempar ArgumentException.

Jika konversi dateTime menghasilkan nilai tanggal dan waktu yang lebih awal dari DateTime.MinValue atau lebih baru dari DateTime.MaxValue, metode ini mengembalikan DateTime.MinValue atau DateTime.MaxValue, masing-masing.

Metode ini mengambil informasi tentang zona waktu yang pengidentifikasinya ditentukan oleh destinationTimeZoneId parameter dari registri pada sistem Windows dan dari Pustaka ICU di Linux dan macOS. Ini tidak dapat mengambil objek zona waktu yang dibuat menggunakan CreateCustomTimeZone metode . Parameter destinationTimeZoneId harus sesuai persis dengan panjang pengidentifikasi zona waktu, tetapi tidak dalam kasus, agar kecocokan berhasil terjadi; artinya, perbandingan destinationTimeZoneId dengan pengidentifikasi zona waktu tidak peka huruf besar/kecil.

Lihat juga

Berlaku untuk

ConvertTimeBySystemTimeZoneId(DateTimeOffset, String)

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

Mengonversi waktu ke waktu di zona waktu lain berdasarkan pengidentifikasi zona waktu.

public:
 static DateTimeOffset ConvertTimeBySystemTimeZoneId(DateTimeOffset dateTimeOffset, System::String ^ destinationTimeZoneId);
public static DateTimeOffset ConvertTimeBySystemTimeZoneId (DateTimeOffset dateTimeOffset, string destinationTimeZoneId);
static member ConvertTimeBySystemTimeZoneId : DateTimeOffset * string -> DateTimeOffset
Public Shared Function ConvertTimeBySystemTimeZoneId (dateTimeOffset As DateTimeOffset, destinationTimeZoneId As String) As DateTimeOffset

Parameter

dateTimeOffset
DateTimeOffset

Tanggal dan waktu untuk mengonversi.

destinationTimeZoneId
String

Pengidentifikasi zona waktu tujuan.

Mengembalikan

Tanggal dan waktu di zona waktu tujuan.

Pengecualian

destinationTimeZoneIdadalah null.

Pengidentifikasi zona waktu ditemukan tetapi data registri rusak.

Proses ini tidak memiliki izin yang diperlukan untuk membaca dari kunci registri yang berisi informasi zona waktu.

Pengidentifikasi destinationTimeZoneId tidak ditemukan pada sistem lokal.

Keterangan

Saat melakukan konversi, ConvertTimeBySystemTimeZoneId metode menerapkan aturan penyesuaian apa pun yang berlaku di destinationTimeZoneId zona waktu.

Kelebihan beban ini identik dengan memanggil ConvertTime(DateTimeOffset, TimeZoneInfo) metode , kecuali memungkinkan Anda menentukan zona waktu tujuan dengan pengidentifikasinya daripada dengan referensi objek. Metode ini paling berguna ketika Anda harus mengonversi waktu tanpa mengambil objek zona waktu yang sesuai dengannya dan Anda tidak perlu tahu apakah waktu yang dikonversi adalah waktu standar atau musim panas.

dateTimeOffset Karena parameter mewakili tanggal dan waktu bersama dengan offset waktu tersebut dari Waktu Universal Terkoordinasi (UTC), parameter tidak dapat mewakili waktu ambigu atau waktu yang tidak valid.

Metode ini mengambil zona waktu yang pengidentifikasinya ditentukan oleh destinationTimeZoneId parameter dari registri pada sistem Windows dan dari Pustaka ICU di Linux dan macOS. Ini tidak dapat mengambil objek zona waktu yang dibuat menggunakan CreateCustomTimeZone metode . Parameter destinationTimeZoneId harus sesuai persis dengan panjang pengidentifikasi zona waktu, tetapi tidak dalam kasus, agar kecocokan berhasil terjadi; artinya, perbandingan destinationTimeZoneId dengan pengidentifikasi zona waktu tidak peka huruf besar/kecil.

Dalam mengonversi dateTimeOffset nilai menjadi waktu di zona waktu tujuan, metode memperhitungkan aturan penyesuaian apa pun yang berlaku di zona waktu tujuan.

Jika konversi dateTimeOffset menghasilkan nilai tanggal dan waktu yang lebih awal dari DateTimeOffset.MinValue atau lebih baru dari DateTimeOffset.MaxValue, metode ini mengembalikan DateTimeOffset.MinValue atau DateTimeOffset.MaxValue, masing-masing.

Lihat juga

Berlaku untuk

ConvertTimeBySystemTimeZoneId(DateTime, String, String)

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

Mengonversi waktu dari satu zona waktu ke zona waktu lainnya berdasarkan pengidentifikasi zona waktu.

public:
 static DateTime ConvertTimeBySystemTimeZoneId(DateTime dateTime, System::String ^ sourceTimeZoneId, System::String ^ destinationTimeZoneId);
public static DateTime ConvertTimeBySystemTimeZoneId (DateTime dateTime, string sourceTimeZoneId, string destinationTimeZoneId);
static member ConvertTimeBySystemTimeZoneId : DateTime * string * string -> DateTime
Public Shared Function ConvertTimeBySystemTimeZoneId (dateTime As DateTime, sourceTimeZoneId As String, destinationTimeZoneId As String) As DateTime

Parameter

dateTime
DateTime

Tanggal dan waktu untuk mengonversi.

sourceTimeZoneId
String

Pengidentifikasi zona waktu sumber.

destinationTimeZoneId
String

Pengidentifikasi zona waktu tujuan.

Mengembalikan

Tanggal dan waktu di zona waktu tujuan yang sesuai dengan dateTime parameter di zona waktu sumber.

Pengecualian

Properti KinddateTime parameter tidak sesuai dengan zona waktu sumber.

-atau-

dateTime adalah waktu yang tidak valid di zona waktu sumber.

sourceTimeZoneIdadalah null.

-atau-

destinationTimeZoneIdadalah null.

Pengidentifikasi zona waktu ditemukan, tetapi data registri rusak.

Pengguna tidak memiliki izin yang diperlukan untuk membaca dari kunci registri yang menyimpan data zona waktu.

Pengidentifikasi sourceTimeZoneId tidak ditemukan pada sistem lokal.

-atau-

Pengidentifikasi destinationTimeZoneId tidak ditemukan pada sistem lokal.

Contoh

Contoh berikut menggunakan TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime, String, String) metode untuk menampilkan waktu yang sesuai dengan waktu sistem lokal di delapan kota di dunia.

DateTime currentTime = DateTime.Now;
Console.WriteLine("Current Times:");
Console.WriteLine();
Console.WriteLine("Los Angeles: {0}", 
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Pacific Standard Time"));
Console.WriteLine("Chicago: {0}", 
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Central Standard Time"));
Console.WriteLine("New York: {0}", 
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Eastern Standard Time"));
Console.WriteLine("London: {0}", 
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "GMT Standard Time"));
Console.WriteLine("Moscow: {0}", 
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Russian Standard Time"));
Console.WriteLine("New Delhi: {0}", 
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "India Standard Time"));
Console.WriteLine("Beijing: {0}", 
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "China Standard Time"));
Console.WriteLine("Tokyo: {0}", 
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Tokyo Standard Time"));
let currentTime = DateTime.Now
printfn "Current Times:\n"
printfn $"""Los Angeles: {TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Pacific Standard Time")}"""
printfn $"""Chicago: {TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Central Standard Time")}"""
printfn $"""New York: {TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Eastern Standard Time")}"""
printfn $"""London: {TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "GMT Standard Time")}"""
printfn $"""Moscow: {TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Russian Standard Time")}"""
printfn $"""New Delhi: {TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "India Standard Time")}"""
printfn $"""Beijing: {TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "China Standard Time")}"""
printfn $"""Tokyo: {TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Tokyo Standard Time")}"""
Dim currentTime As Date = Date.Now
Console.WriteLine("Current Times:")
Console.WriteLine()
Console.WriteLine("Los Angeles: {0}", _
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Pacific Standard Time"))
Console.WriteLine("Chicago: {0}", _ 
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Central Standard Time"))
Console.WriteLine("New York: {0}", _
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Eastern Standard Time"))
Console.WriteLine("London: {0}", _
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "GMT Standard Time"))
Console.WriteLine("Moscow: {0}", _
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Russian Standard Time"))
Console.WriteLine("New Delhi: {0}", _
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "India Standard Time"))
Console.WriteLine("Beijing: {0}", _
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "China Standard Time"))
Console.WriteLine("Tokyo: {0}", _
                  TimeZoneInfo.ConvertTimeBySystemTimeZoneId(currentTime, TimeZoneInfo.Local.Id, "Tokyo Standard Time"))

Keterangan

Saat melakukan konversi, ConvertTimeBySystemTimeZoneId metode menerapkan aturan penyesuaian apa pun yang berlaku di destinationTimeZoneId zona waktu.

Meskipun mirip TimeZoneInfo.ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo) dengan metode ini, Anda dapat menggunakan TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime, String, String) untuk menentukan zona waktu sumber dan tujuan menggunakan pengidentifikasinya alih-alih objeknya TimeZoneInfo . Metode ini paling berguna ketika Anda harus mengonversi waktu tanpa mengambil objek zona waktu yang sesuai dengannya dan Anda tidak perlu tahu apakah waktu yang dikonversi adalah waktu standar atau musim panas.

Metode ini mengambil zona waktu yang pengidentifikasinya adalah sourceTimeZoneId parameter dan destinationTimeZoneId dari registri pada sistem Windows dan dari Pustaka ICU di Linux dan macOS. Ini tidak dapat mengambil objek zona waktu yang dibuat menggunakan CreateCustomTimeZone metode .

Nilai Kind properti dateTime parameter harus sesuai dengan sourceTimeZoneId parameter , seperti yang ditunjukkan tabel berikut.

Nilai DateTime.Kind nilai sourceTimeZone Perilaku metode
DateTimeKind.Utc TimeZoneInfo.Utc.IdSama dengan . dateTime Mengonversi ke waktu zona waktu tujuan.
DateTimeKind.Utc Tidak sama dengan TimeZoneInfo.Utc.Id. ArgumentExceptionMelempar .
DateTimeKind.Local TimeZoneInfo.Local.IdSama dengan . dateTime Mengonversi ke waktu zona waktu tujuan.
DateTimeKind.Local Tidak sama dengan TimeZoneInfo.Local.Id. ArgumentExceptionMelempar .
DateTimeKind.Unspecified Semua. dateTime Mengonversi ke waktu zona waktu tujuan.

Karena bergantung pada panggilan ke FindSystemTimeZoneById metode , ConvertTimeBySystemTimeZoneId metode melakukan pencarian yang tidak peka huruf besar/kecil untuk menemukan zona waktu yang sesuai dengan sourceTimeZoneId dan destinationTimeZoneId.

Jika nilai dateTime parameter adalah waktu ambigu di zona waktu sumber, itu ditafsirkan sebagai waktu standar. dateTime Jika parameter adalah waktu yang tidak valid di zona waktu sumber, metode ini akan menampilkan ArgumentException.

Kind Properti dari nilai yang dikembalikan DateTime diatur ke DateTimeKind.Unspecified kecuali zona waktu tujuan adalah Waktu Universal Terkoordinasi (UTC), dalam hal ini diatur ke DateTimeKind.Utc.

Lihat juga

Berlaku untuk