UNIX-Time

Konzeptionelles, Technisches, Termine, Fragen zum Hersteller usw.

Moderator: Moderatoren

Antworten
miwe-pos
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 28
Registriert: Mi, 26. Dez 2018 18:13

UNIX-Time

Beitrag von miwe-pos »

Hat jemand eine Function um das Normale Datums- und Zeitformat in UNIX TIME umzuwandeln?
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: UNIX-Time

Beitrag von ramses »

Hallo

Ich verwende oft diese.
Sie basiert auf einem Beitrag von Hubert hier im Forum. Es gäbe noch eine Variante mit API Calls ....
Das verhalten mit Sommer/Wintertzeit musst du noch überprüfen.

Code: Alles auswählen


// ----------------------------------------------------------
// Aufruf:
// TimeStampUnix( nil, nil, .t. )    --> Timestamp aktuelles Datum und  Zeit in  milliSekunden
// TimeStampUnix( nil, nil, .f. )    --> Timestamp aktuelles Datum und  Zeit in  Sekunden
//
// xDatum    =  Datum als String  18.12.19  oder Datumswert
// xSeconds  =  Sekunden als String "12:01:59"  oder  Nummerischer Wert


function MakeUnixTimeStamp(xDatum,xSeconds,lmilliSec)     // siehe v_vi11.prg // w_tools.prg
   LOCAL dTestTag, nTage
   LOCAL dUnixStart     := ctod("01.01.1970")
   LOCAL nUnixTimeStamp := 0

   default lMilliSec to .t.

   if xDatum = NIL
      xDatum := date()
      dTestTag := xDatum
   elseif valtype(xDatum) = "C"
      xDatum := ctod( xDatum )
   endif

   if  xSeconds = NIL
      xSeconds := seconds()
      if date() <> dTestTag
         xSeconds := 86399
      endif
   elseif valtype(xSeconds) = "C"
      xSeconds := timetosec( xSeconds)
   endif

   xSeconds := int(xSeconds)

   nTage := xDatum - dUnixStart

   nUnixTimeStamp := int( nTage * 86400 + xSeconds )

   if lMilliSec
        nUnixTimeStamp := nUnixTimeStamp * 1000
   endif

return( nUnixTimeStamp )

Valar Morghulis

Gruss Carlo
miwe-pos
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 28
Registriert: Mi, 26. Dez 2018 18:13

Re: UNIX-Time

Beitrag von miwe-pos »

Danke Ramses!
Funktioniert sehr gut.
ich habe auch die Umkehrung daraus entwickkelt.
Wird für die TSE-kommunikation benötigt.
Antworten