Kirjoittaja Aihe: Päivämäärät ja kellonajat  (Luettu 672 kertaa)

Mistofelees

  • Käyttäjä
  • Viestejä: 664
    • Profiili
Päivämäärät ja kellonajat
« : 26.11.24 - klo:14.31 »
Tämä on turhaa vaahtoamista, mutta:

Kirjoittelen softaa, joka yhdistää kahdelta eri laitteelta tulevaa paikkatietoa, Itse tehdyltä GPS-trakkerilta ja Androidin OsmAndilta.
Itsetekemä lähettää GMT-aikaa muodossa hh:mm:ss DDMMYY.
Osmandilta tulee muokkauksen jälkee samanlaista.
Olen saanut nämä toimimaan, mutta nyt peliin tulee vielä kaksi laitetta, joista toinen lähettää local-time hhmmss MMYYDD ja toinen Bejing time hh:mm:ss.

Tähän kun vielä liitetään kesä- ja talviaika-sähläys, tuli mieleeni tuhma ajatus:
Miksei voitaisi lisätä aikaleimoihin lisämerkkejä kertomaan, mikä date-formaatti on käytössä ja missä aikavyöhykkeessä ollaan.
Esimerkiksi A=America (MMDDYY), E=Europe (DDMMYY), J=Japan (YYMMDD). Päivämäärä olisi tällöin 261124E.
Kellonaikaan voisi lisätä aikavyöhykkeen kirjaimella A-S, a-s. Isot kirjaimet talvelle ja pienet kesällä.
Kellonaika olisi tällöin 14:16P27 (hh:mm:ss). Ellei tarvittaisi sekunteja, aika olisi 14:16P.

Tuo Japanilaisten (usein) käyttämä YYMMDD olisi minusta paras, koska se helpottaa aikaleimattujen tiedostojen käsittelyä.
Esimerkiksi tiedosto, jonka rivien alussa on DDMMYY, joudutaan ensin muokkaamaan muotoon YYMMDD, sorttaamaan ja sitten kääntämään takaisin DDMMYY -muotoon.

Itsellä on parhaillaan käsissä 308 tiedostoa, joiden nimi on muotoa fileDDMMYY,txt ja soiden sisällä jokaisella rivillä on DDMMYY.
Tiedostot pitäisi käsitellä päivämäärän mukaisessa järjestyksessä ja vielä sisältö sortata ensin  päivämäärän ja sitten erikseen vielä kellonajan mukaan.
Eihän tämä php:llä ollut vaikeaa, mutta turhaa.

Efraiminpoika

  • Käyttäjä
  • Viestejä: 166
    • Profiili
Vs: Päivämäärät ja kellonajat
« Vastaus #1 : 26.11.24 - klo:15.56 »
Miten olisi standardin (ISO 8601) mukainen ajan esittäminen https://en.wikipedia.org/wiki/ISO_8601?

Olisit yksi harvoista sitä oikeasti käyttäviä. vaikka toivottovasti käytössä NATO:ssa, ettei kenenkään nykyajan Sven Tuuvan tarvitse taistella yksinään sillalla, kun Sandelsilla ja venäläisillä oli eri kellonajat käytössä.

Kyllä nämä totutut käytönnöt ovat välillä vaikeasti muutettavissa, vaikka aiheuttivat hämminkiä jo ennen tietokoneita...
eläkeläisäijä

A. Hellaakoski: Tien kulkija tien on vanki. Vapaa on vain umpihanki.

nm

  • Käyttäjä
  • Viestejä: 16439
    • Profiili
Vs: Päivämäärät ja kellonajat
« Vastaus #2 : 26.11.24 - klo:17.40 »
ISO 8601 -standardin mukaisia aikaleimoja käytetään kyllä aika usein palvelinsovelluksissa, lokeissa ja vastaavissa tapauksissa, kun niitä halutaan esittää ja lukea sekä automaattisesti että ihmiskäyttäjän toimesta. Sille on laaja tuki eri ohjelmointikielissä, myös PHP:ssä. Formaatissa aikavyöhyke ilmaistaan aikaerona UTC-aikaan, muodossa +/-HH:MM. UTC-aika merkitään +00:00 tai Z, eli esimerkiksi:

Koodia: [Valitse]
2024-11-26T17:12:45Z
Standardin mukaan välimerkit - ja : voidaan myös jättää pois. Sekunnin desimaaliosat voidaan merkitä pisteellä erotettuina. Ilman aikavyöhyketietoa oletetaan, että aikaleima tarkoittaa paikallista aikaa.

Toinen yleinen muoto on määritelty RFC 3339:ssä. Se muistuttaa muuten ISO 8601:tä, paitsi T:n sijaan päivämäärän ja ajan erottimena voi käyttää myös välilyöntiä.

Mistofelees

  • Käyttäjä
  • Viestejä: 664
    • Profiili
Vs: Päivämäärät ja kellonajat
« Vastaus #3 : 29.11.24 - klo:22.30 »
Tuo ISO 8601:n mukainen on lähinnä järkevää. Tuota 'Z'-merkintää en muistanutkaan. Se selkeyttää asioita merkittävästi.  Kiios muisuuksesa !
Välimerkkien pois jättämisellä on selvä etu, kun tiedostot kasvavat.

Itse olen aktiivisimmissa järjestelmissä pistäny scripin lyömään PVM-leiman 'D,DDMMYY' rivin loppuun vuorokauden vaihtuessa ja KLO-leiman kunkin rivin alkuun.
Monet usein käytetyt tiedostomuodot, esim gpx sisältävät niin paljon 'roskaa', että niiden käyttö on täysin mahdotonta, kun dataaa tulee paljon.