![]() |
AW: DateTimeToUnix 1 stunde zurück
Zitat:
Keine Ahnung was ich da jetzt von benutzen soll. Habe mal gesucht . .. ![]() Result so gut wie nichts |
AW: DateTimeToUnix 1 stunde zurück
@venice2: Müsste nicht folgendes etwas sein was da passt wegen der Zeitzone?
![]() |
AW: DateTimeToUnix 1 stunde zurück
Zitat:
Keine Idee im Moment wie ich TDateTime wieder zurück nach Int64 setzen soll. Bin vielleicht zu blöd dafür. |
AW: DateTimeToUnix 1 stunde zurück
Zitat:
Zeit ermitteln als TDateTime und ggf. Zeitzone anpassen (was ich oben im Link meinte) Danach erst die Umwandlung mit DateTimeToUnix in dein gewünschtes Format und übergeben. Müsste es nicht dann passen? |
AW: DateTimeToUnix 1 stunde zurück
.. wenn Du aus dem SO link Beitrag 11 diese Routine
Function DateTime2UnivDateTime(d:TDateTime):TDateTime benutzt
Delphi-Quellcode:
unixUTCTimeStamp := DateTimeToUnix(DateTime2UnivDateTime(now))
|
AW: DateTimeToUnix 1 stunde zurück
Zitat:
Frühstücksfernsehen fängt dann um 4:30 an.
Delphi-Quellcode:
function TzSpecificLocalTimeToSystemTime(lpTimeZoneInformation: PTimeZoneInformation; var lpLocalTime, lpUniversalTime: TSystemTime): BOOL; stdcall;
function TzSpecificLocalTimeToSystemTime; external kernel32 name 'TzSpecificLocalTimeToSystemTime'; //... Function DateTime2UnivDateTime(d:TDateTime):TDateTime; var TZI:TTimeZoneInformation; LocalTime, UniversalTime:TSystemTime; begin GetTimeZoneInformation(tzi); DateTimeToSystemTime(d,LocalTime); TzSpecificLocalTimeToSystemTime(@tzi,LocalTime,UniversalTime); Result := SystemTimeToDateTime(UniversalTime); end;
Delphi-Quellcode:
TimeStart := DateTimeToUnix(DateTime2UnivDateTime(IncHour(Now, 0)));
|
AW: DateTimeToUnix 1 stunde zurück
Blöde Frage aber müsste da nicht anstatt der 0 eine 1 sein, also:
TimeStart := DateTimeToUnix(DateTime2UnivDateTime(IncHour(Now, 1))); Wobei das eigentlich ja nur ein "workaround" sein kann. Du müsstest anhand dessen ob Sommerzeit oder Winterzeit ist, die "1" anpassen. RETURN VALUE 0 Daylight saving time is not used in the current time zone, because there are no transition dates or automatic adjustment for daylight saving time is disabled. 1 The system is operating in the range covered by the StandardDate member of the TIME_ZONE_INFORMATION structure. 2 The system is operating in the range covered by the DaylightDate member of the TIME_ZONE_INFORMATION structure. Wenn ich also GetTimeZoneInformation() richtig verstehe, könntest du es hier einsetzen: GetTimeZoneInformation(tzi); TimeStart := DateTimeToUnix(DateTime2UnivDateTime(IncHour(Now, tzi))); |
AW: DateTimeToUnix 1 stunde zurück
Zitat:
Delphi-Quellcode:
TimeStart := DateTimeToUnix(DateTime2UnivDateTime(IncHour(Now, 0)));
//DateTimeToUnix(IncHour(Now, 0)); TimeEnd := DateTimeToUnix(DateTime2UnivDateTime(IncDay(Now, 1))); //DateTimeToUnix(IncDay(Now, 1))
Delphi-Quellcode:
funktioniert einwandfrei unter 10.4
DateTimeToUnix(IncHour(Now, 0), false);
DateTimeToUnix(IncDay(Now, 1, false)) EDIT: Wenn ich dort eine 1 einfügen würde dann müsste ich jetzt schon Das Frühstücksfernsehen laut der EPG Daten starten können und zwar in der Zeit von 9:00 > 11:00 Das stimmt aber nicht. Die Sendung läuft zur jetzigen zeit noch nicht. Und die läuft eigentlich erst von 10 > 12 Uhr.. Nach wie vor ich liege um 1 Stunde zurück. siehe pic |
AW: DateTimeToUnix 1 stunde zurück
In Unix ist die Zeit doch Sekunden seit 1.1.1970.
1 Stunde sind 60 Minuten * 60 Sekunden -> 3600 Sekunden. Unixzeit in Greenwich (UTC) + 3600 müsste dann doch die Uhrzeit bei uns (Berlin) ergeben? Unsere Uhrzeit -1 Stunde ergibt UTC. Oder irre ich da? Also ungefähr sowas:
Delphi-Quellcode:
Oder eventuell:
function DateTimeToUnixWithOffSet(const AValue: TDateTime; const AOffSet : Int64): Int64;
begin Result := Round((AValue - UnixDateDelta) * SecsPerDay) + AOffSet; end; ... TimeStart := DateTimeToUnixWithOffSet(Now, -3600); // Eine Stunde zurück -> UTC TimeEnd := DateTimeToUnixWithOffSet(Now, 3600); // Eine Stunde vor -> ergibt eine Zeitspanne von 2 Stunden
Delphi-Quellcode:
Nur hab' ich keine Ahnung, ob es DecHour gibt, Google findet es jedenfalls nicht.
TimeStart := DateTimeToUnix(DateTime2UnivDateTime(DecHour(Now, 1)));
Kann IncHour auch mit negativen Zahlen umgehen? Dann
Delphi-Quellcode:
TimeStart := DateTimeToUnix(DateTime2UnivDateTime(IncHour(Now, -1)));
|
AW: DateTimeToUnix 1 stunde zurück
Delphi-Quellcode:
wenn ich die Zeit
function TzSpecificLocalTimeToSystemTime(lpTimeZoneInformation: PTimeZoneInformation; var lpLocalTime, lpUniversalTime: TSystemTime): BOOL; stdcall;
function TzSpecificLocalTimeToSystemTime; external kernel32 name 'TzSpecificLocalTimeToSystemTime'; implementation uses system.dateUtils; Function DateTime2Utc(d:TDateTime):TDateTime; var TZI:TTimeZoneInformation; LocalTime, UniversalTime:TSystemTime; begin GetTimeZoneInformation(tzi); DateTimeToSystemTime(d,LocalTime); TzSpecificLocalTimeToSystemTime(@tzi,LocalTime,UniversalTime); Result := SystemTimeToDateTime(UniversalTime); end; procedure TForm1.Button1Click(Sender: TObject); begin edit1.Text := intToStr(secondsBetween(dateTime2Utc(now), encodeDate(1970,1,1))); end; ![]() bekomme ich die aktuelle Zeit. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:09 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