![]() |
Uhrzeit eines Unix-Timestamps ändern?
So langsam habe ich die Nase voll von Datums- und Zeitangaben.
Gegeben ist ein Unix-Timestamp. Ein Datum und eine Uhrzeit. Das Datum möchte ich behalten, aber die Zeit verändern. Wie genau geht das von statten? |
AW: Uhrzeit eines Unix-Timestamps ändern?
MOD und DIV?
x Millisekunden am Tag, da kann man ganz leicht beide Teile trennen und nach dem Ändern wieder zusammensetzen. Oder du wandelst das in ein Zeitformat um, was sich einfacher ändern lässt und nachher wieder zurück. z.B. TSystemTime wo jeder Teil in einer einzelnen Variable in einem Record liegt (MSec, Sec, Min, Hour, Day, Mon und Year) oder TDateTime mit den Änderungs-Prozeduren der DateUtils |
AW: Uhrzeit eines Unix-Timestamps ändern?
Wie der schlaue Mann über mir sagt: Das Umwandeln in die gewohnten Formate der Sprache/Bibliothek sollte immer der erste Schritt sein um damit zu arbeiten.
Delphi-Quellcode:
uses System.DateUtils, System.SysUtils;
const unixTimestamp = 1504003327; var asDateTime: TDateTime; begin asDateTime := UnixToDateTime(unixTimestamp); WriteLn( 'Vorher: ' + DateTimeToStr(asDateTime) ); asDateTime := RecodeTime(asDateTime, 17, 00, 00, 000); WriteLn( 'Nachher: ' + DateTimeToStr(asDateTime) ); ReadLn; end. |
AW: Uhrzeit eines Unix-Timestamps ändern?
Danke für eure Hilfe. Ich habe das folgendermaßen gelößt, um doppelten Code zu vermeiden.
Die Parameter (Integer und String) sind für mich genau passend, da ich keine TDateTime-Werte übergeben möchte (was woanders wieder mehr doppelten Code verursachen würde):
Delphi-Quellcode:
function ChangeTime(const Timestamp: Integer; const NewTime: string): Integer;
var aNewTime, aDateTime: TDateTime; begin aNewTime := StrToTime(NewTime); aDateTime := UnixToDateTime(Timestamp); aDateTime := RecodeTime(aDateTime, System.DateUtils.HourOf(aNewTime), System.DateUtils.MinuteOf(aNewTime), System.DateUtils.SecondOf(aNewTime), 000); Result := DateTimeToUnix(aDateTime); end;
Delphi-Quellcode:
procedure Test;
begin unixTimestamp := ChangeTime(DateTimeToUnix(IncDay(Date)), '17:00:00'); // bzw unixTimestamp := TDateUtils.ChangeTime(1504003327, '17:00:00'); end; |
AW: Uhrzeit eines Unix-Timestamps ändern?
Zitat:
Sherlock |
AW: Uhrzeit eines Unix-Timestamps ändern?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz