[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Mar 2006
    Beiträge
    16

    Timewert von API stat() als ttmmjjjj

    Hallo liebes Forum,

    ich arbeite mich gerade in die API rein - mittels opendir, readdir, stat lese ich den Inhalt eines Verzeichnises im IFS aus.

    Das funktioniert auch soweit, die stat Funktion liefert u.a. den Wert time_t --> Time of last data modification.


    Nun meine Frage:
    Wie kann ich diesen Wert (sind ja anscheinend anzahl Sekunden seit xxx) in einen Datum / Zeit Wert umwandeln, den ich dann in einem RPG Programm weiterverarbeiten kann ??

    Ein kleines Beispiel wäre super.
    Danke.

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Dazu dient dann die C-Funktion "struct tm* localtime(time_t time);"
    Diese berücksichtigt dann auch QUTCOFFSET korrekt.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Dec 2002
    Beiträge
    301
    Hallo,

    time_t ist der Typ. Hier die verschiedenen Datumswerte, die "stat" liefert.

    PHP-Code:
    time_t st_atime The most recent time the file was accessed.

     
    time_t st_mtime The most recent time the contents of the file were changed.

     
    time_t st_ctime The most recent time the status of the file was changed 
    Hier eine C-Funktion, welche aus st_mtime ein Datum im Format JJJJMMTT macht.

    PHP-Code:
    long int RetrieveEntryAccessTime(char *path) {                                          
      
    struct stat info;                                                                     
      
    struct tm date;                                                                       
      if (
    stat(path, &info) != 0)                                                           
        return -
    1;                                                                          
      else {                                                                                
        
    localtime_r(&info.st_mtime, &date);                                                 
        return (
    date.tm_mday) + ((date.tm_mon 1) * 100) + ((date.tm_year 1900) * 10000);
      }                                                                                     

    Wenn Du ein anderes Datum willst, dann musst Du nur st_mtime auswechseln.
    Frank Hildebrandt

  4. #4
    Registriert seit
    Mar 2006
    Beiträge
    16
    Vielen Danke für die hilfe,

    versuche mal mein Glück mit dem Befehl ADDDUR, wenn das nicht klappt, werde ich auf C umsteigen.

  5. #5
    Registriert seit
    Nov 2006
    Beiträge
    102
    Hallo,
    die Unix-APIs liefern alle Zeitangaben in Sekunden seit "The Epoch" (01.01.1970 00:00:00). Für die Umrechnung wirst Du nicht ernsthaft einen Tip erwarten, denke ich (%DIFF, falls doch ...).
    MfG
    M. Spateneder

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Die C-Funktion localtime() rechnet den Time-Wert (1.1.1970) unter Berücksichtigung von QUTCOFFSET in eine lokale Zeit um.
    Dies ist deshalb notwendig, da stat() den um QUTCOFFSET korrigierten Zeitwert (GMT-Zeit) liefert.

    Mit ADDDUR kommt man nur dann zurecht, wenn man eben selber QUTCOFFSET berücksichtigt.

    Neuerdings (ab V5R3) wird allerdings auch eine USER-Zeit über eine Umgebungsvariable ermöglicht, deren Wert von QUTCOFFSET abweichen kann.
    stat() verwendet diesen Wert.

    Also wäre localtime() auf jeden Fall die bessere Wahl.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

Similar Threads

  1. Probleme API QUSLJOB aufzurufen
    By TMusolf in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 25-01-07, 12:42
  2. javamail api
    By jogisarge in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 22-11-06, 16:02
  3. Eingabe sperren bei Fehlermeldung über API
    By ExAzubi in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 17-10-06, 16:48
  4. API für die Ermittlung aktiver Jobs
    By lyrics in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 29-08-06, 09:03
  5. Datumsvergleich ttmmjjjj mit ttmmjj
    By haertl in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 11-05-06, 11:24

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •