Delphi SetCreationTime pridáva hodinu, ak je dátum v rôznych letný čas

0

Otázka

dnes existuje novembra (DST). Som nastaviť Súbor dátum a čas s :

TFile.SetCreationTime(FilePath, ADateTime);
  1. Ak by som nastaviť dátum, čas: '2021-11-11 02:27:00" prečítajte si v programe Windows Explorer je nastavený.

  2. Ak by som nastaviť dátum, čas: '2021-05-14 02:27:00", potom dátum je OK, ale hodinu prečítať v programe Windows Prieskumník je 03:27.

Ako nastaviť hodiny do 02:27:00 nezávisle na letný čas?

datetime delphi dst
2021-11-23 12:33:29
1

Najlepšiu odpoveď

0

Dokumentáciu o TFile.SetCreationTime() nie je veľká. Keďže však tiež metóda TFile.SetCreationTimeUtc() existuje bývalej bude s najväčšou pravdepodobnosťou interpretovať TDateTime ako miestny čas (aktuálne zvolené časové pásmo v operačnom účtu nastavenia), zatiaľ čo druhá bude interpretovať ako systémový čas (UTC = GMT = časové pásmo 0000).

Skrátka: udržať si z problémov a prevádzkovať na UTC časy, ktoré tiež nevie prechodu na letný čas. Príklady:

2021-11-23 18:06:20

Snažil som sa raz pomocou UTC funkcia verzia (TFile.SetCreationTimeUtc), ale to robilo 4:27:00 (dávam 2:27:00). Aspoň Windows Explorer hovorí, že.
m227

Ste stále neboli uvedené časové pásmo nastavenie vášho operačného systému účet. A ak je správne (t. j. vyberie nesprávne časové pásmo, len aby sa zmestili leto/zima offset).
AmigoJack

Moje časové pásmo nastavenie v systéme Windows 10 znie: "(UTC +01:00) Sarajeve... Varšava..." nemyslíte si, že by tam mali byť funkciu nastaviť hodinu, bez ohľadu TZ do úvahy?
m227

Nastavenie 02:27 ako čas UTC budú zobrazené ako 03:27 s časové pásmo z +0100, a keď sa letný čas je v skutočnosti (ako si ju opísal vo vašej otázke, hoci mám svoje pochybnosti novembra je letný čas) a potom ďalšiu hodinu sa pridá, takže čas 04:27 zobrazí sa systém Windows. Čo je to, čo sa deje na vás.
AmigoJack

V iných jazykoch

Táto stránka je v iných jazykoch

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................