DateTimeToStr i format daty w Windowsie

0

Witam,
mam następujące pytanie.
Funkcja DateTimeToStr zwraca date i czas w takiej postaci 01.01.2017 08:00:00 a na innych kompach np 01.01.2017 08:00:00 AM
Te dwa zapisy zależa od ustawień regionu formatu daty. z AM zwracane jest gdy mamy ustawione w windowsie region angielski, amerykański. Bez AM gdy lokalny, Polski.
Jednak w paru przypadkach mimo ustawienia regionu polskiego dalej zwraca z AM.
Sprawdzane na Windows 10.
Czy format zwracanej daty i czasu może jeszcze zależeć od jakiś innych ustawień windowsa ?

0

Pokaż kod, którego używasz do pobrania daty.

Czy format zwracanej daty i czasu może jeszcze zależeć od jakiś innych ustawień windowsa ?

Zobacz tutaj jak wygląda sprawa z tymi funkcjami.

0

Np taki. Wiem jak wymusić by uzyskać taki format jak potrzebuje. Jednak nie o to pytam.
Bardziej mi chodzi o to jak sterować ustawieniami windowsa.

procedure TForm1.Button1Click(Sender: TObject);
var d1 : TdateTime;
begin
 d1 := IncMinute(now, 480);
 showmessage(DateTimeToStr(d1));
end;
 
0

Funkcję DateTimeToStr używam tylko w sytuacji kiedy na szybko (np. podczas testów) muszę zwizualizować wartość "Tdatetime" w jakiejś kontrolce (label, dataset ...) albo w ShowMessage.
W każdym innym przypadku "rozbijam" "TdateTime" na elementy składowe przy pomocy procedury 'decodedatetime' , która jest niezależna od regionalnych ustawień systemu.
Rozbijasz TdateTime na 7 wartości typu WORD i z nich budujesz sobie stringa niezależnego od od systemowych ustawień

2
  1. jeśli potrzebujesz daty jako napis w zawsze takim samym formacie to NIE UŻYWAJ funkcji, które zależą od ustawień windowsa
  2. zmiana (wymuszanie zmiany) ustawień windowsa aby Twój program działał poprawnie to BARDZO ZŁY sposób
  3. zamiast DateTimeToStr użyj FormatDateTime i sam podawaj format, jaki chcesz mieć na wyjściu
0

Dziękuję za odpowiedzi. Oczywiście macie tu racje i powinienem sam sobie określać format daty jaki chce uzyskać. Tak też robię w każdym normalnym przypadku.
Tu akurat było przeoczenie i z pewnych powodów brak możliwości wygenerowania wersji naprawczej stąd, chciałem tym sterować z innej strony.

1 użytkowników online, w tym zalogowanych: 0, gości: 1