Dalam menggunakan fungsi getdynamictimezoneinformasi, bagaimana mengubah kedua struktur tanggal ini menjadi bentuk tanggal/waktu lokal.

pemrograman


n menggunakan fungsi GetDynamicTimeZoneInformation(&dtzi), dan dalam struktur ‘dtzi’, ia memberitahu
Anda apakah Anda berada di waktu Musim Panas atau tidak dan kapan waktu tersebut akan dimulai, via
dua tanggal ini. Nilai kembalian fungsi ini juga memberi tahu Anda tentang informasi yang sama.
Namun bagaimana cara seseorang mengubah tanggal siang hari dan/atau tanggal standar ini
struktur ke dalam bentuk tanggal/waktu lokal yang dapat dibaca. Bolehkah saya bertanya bagaimana hal ini dilakukan di “C”. Saya tahu di sana
pasti ada beberapa konversi, tapi bagaimana caranya? Terima kasih, dan atas waktu Anda.

Apa yang saya coba:

metode coba-coba. Menggunakan contoh-contoh yang ditemukan dan kemudian menerapkan ide yang ditemukan pada masalah. Kadang-kadang tidak berfungsi dengan baik dan tidak berfungsi sama sekali.

Solusi 1

Saya membuat asumsi di sini bahwa Anda berbicara tentang mengubah keduanya SYSTEMTIME struktur di DYNAMIC_TIME_ZONE_INFORMATION obyek. Untuk mencapai hal ini, saya yakin Anda akan mulai dengan mengonversi SYSTEMTIME struktur ke waktu file lokal menggunakan SystemTimeToLocalFileTime fungsi. Setelah Anda melakukan ini, Anda akan menggunakannya FileTimeToSystemTime untuk mengonversi waktu file lokal kembali ke a SYSTEMTIME struktur yang mewakili tanggal dalam waktu setempat. Mungkin terlihat seperti ini:

C
SYSTEMTIME standardDate = timeZoneInfo.StandardDate;

FILETIME localFileTime;
SystemTimeToLocalFileTime(&standardDate, &localFileTime);

SYSTEMTIME localStandardDate;
FileTimeToSystemTime(&localFileTime, &localStandardDate);

char dateString[20];
sprintf(dateString, "%d-%02d-%02dT%02d:%02d:%02dT", localStandardDate.wYear, localStandardDate.wMonth, localStandardDate.wDay, localStandardDate.wHour, localStandardDate.wMinute, localStandardDate.wSecond);

Catatan, saya baru saja membuat metode ini di editor di sini, jadi mungkin ada satu atau dua kesalahan ketik di sini.

コメント

タイトルとURLをコピーしました