Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi posttime (int) in aktuelles Datum umrechnen und umgekehrt (https://www.delphipraxis.net/83342-posttime-int-aktuelles-datum-umrechnen-und-umgekehrt.html)

RX3 31. Dez 2006 13:54

Datenbank: MySQL • Zugriff über: ADO

posttime (int) in aktuelles Datum umrechnen und umgekehrt
 
Hallo kann mir jemand sagen wie ich aus meiner MySQL-DB die posttime (Typ int) umrechnen kann in einen konkreten Zeitwert im Format: dd.mm.yyyy, hh:mm

Bsp:
Habe in der DB den Wert: 1167539082
Das ist umgerechnet folgendes Datum: 31.12.2006, 05:24

wie kann ich so etwas umrechnen? Und zwar in beide Richtungen ??

marabu 31. Dez 2006 14:50

Re: posttime (int) in aktuelles Datum umrechnen und umgekehr
 
Hallo,

ich würde es so probieren:

Delphi-Quellcode:
uses
  Windows,
  DateUtils;

function UTCToDateTime(utc: Int64): TDateTime;
var
  tzi: TTimeZoneInformation;
begin
  Result := UnixToDateTime(utc);
  GetTimeZoneInformation(tzi);
  Result := Result - tzi.Bias * OneMinute;
end;

function DateTimeToUTC(dt: TDateTime): Int64;
var
  tzi: TTimeZoneInformation;
begin
  Result := DateTimeToUnix(dt);
  GetTimeZoneInformation(tzi);
  Result := Result + tzi.Bias * 60;
end;
Grüße vom marabu

RX3 1. Jan 2007 13:16

Re: posttime (int) in aktuelles Datum umrechnen und umgekehr
 
Hi ich wollte keinen Code der mir das berechnet, sondern generell will ich wissen welchen Integer-Wert ich in die DB eintragen muss damit ich ein bestimmtes Datum erhalte...

Habs aber schon rausgefunden, vielen Dank trotzdem für die schnelle Hilfe

Hier ne Auflistung:
1 = 1.1.1970, 1:00:01
59 = 1.1.1970, 1:00:59
60 = 1.1.1970, 1:01:00
120 = 1.1.1970, 1:02:00
3599 = 1.1.1970, 1:59:59
3600 = 1.1.1970, 2:00:00
86400 = 2.1.1970, 1:00:00
31536000 = 1.1.1971, 1:00:00
1136073600 = 1.1.2006, 1:00:00

usw (die Berechnungen müssten klar sein, denke ich)

Klaus01 1. Jan 2007 13:21

Re: posttime (int) in aktuelles Datum umrechnen und umgekehr
 
Ich dachte immer die Unix Zeitrechnung fängt beim 1.1.1970 00:00 an.

Zitat:

Zitat von RX3
1 = 1.1.1970, 1:00:01
59 = 1.1.1970, 1:00:59

Das sollte dann nicht richtig sein.

Grüße
Klaus

mkinzler 1. Jan 2007 13:23

Re: posttime (int) in aktuelles Datum umrechnen und umgekehr
 
Zitat:

Zitat von Klaus01
Ich dachte immer die Unix Zeitrechnung fängt beim 1.1.1970 00:00 an.

Fängt sie ja auch an: 0

RX3 1. Jan 2007 16:14

Re: posttime (int) in aktuelles Datum umrechnen und umgekehr
 
falsch

0 = 01.01.1970, 01:00:00
1 = 01.01.1970, 01:00:01

//EDIT
oder hab ich eine stunde zuviel wegen GMT-Zeitzone +1 ??

marabu 1. Jan 2007 17:42

Re: posttime (int) in aktuelles Datum umrechnen und umgekehr
 
Hi,

Zitat:

Zitat von RX3
ich wollte keinen Code der mir das berechnet

das mag sein, aber das konnte ich nicht aus deinem Beitrag heraus lesen. Wenn du in Zukunft keinen Code sehen möchtest, dann musst du es nur kurz schreiben und ich merke mir das, so dass es nicht noch einmal vorkommt. Sorry nochmal.

Wenn du allerdings die wenigen Zeilen von mir analysierst, dann fallen dir Dinge wie UTC (Universal Time Coordinated), TDateTime (der Delphi Datentyp für die interne Darstellung von Datum und Zeit), DateTimeToUnix(), UnixToDateTime() und GetTimeZoneInformation() auf. Fünf Dinge zu denen du deine Online Hilfe befragen kannst. Im Anschluss weißt du, dass der Unix Referenzzeitpunkt Mitternacht am 1.1.1970 (UTC) ist. Die eine Stunde Versatz ist tatsächlich die Zeitzone.

Freundliche Grüße


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:42 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz