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 ?
- Rejestracja:ponad 13 lat
- Ostatnio:10 miesięcy
- Lokalizacja:Warszawa
- Postów:62
- Rejestracja:ponad 13 lat
- Ostatnio:10 miesięcy
- Lokalizacja:Warszawa
- Postów:62
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;
- Rejestracja:ponad 14 lat
- Ostatnio:około 13 godzin
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ń

- Rejestracja:ponad 12 lat
- Ostatnio:8 miesięcy
- Postów:6610
- jeśli potrzebujesz daty jako napis w zawsze takim samym formacie to NIE UŻYWAJ funkcji, które zależą od ustawień windowsa
- zmiana (wymuszanie zmiany) ustawień windowsa aby Twój program działał poprawnie to BARDZO ZŁY sposób
- zamiast
DateTimeToStr
użyjFormatDateTime
i sam podawaj format, jaki chcesz mieć na wyjściu
- Rejestracja:ponad 13 lat
- Ostatnio:10 miesięcy
- Lokalizacja:Warszawa
- Postów:62
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.
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.
abrakadaberabrakadaber