[ad_1]
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:
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.
[ad_2]
コメント