De topic title geeft de bedoeling al redelijk weer. Ik krijg een tijd in locale-independent ctime-notatie (bv. "Thu Oct 13 04:54:34 1994") binnen en die wil ik graag omzetten naar een UNIX timestamp zodat ik er wat zinnige dingen mee kan gaan doen.
Nu ben ik in principe best in staat om de maand, dag, tijd en jaartal uit die string te halen met een simpele reguliere expressie en met POSIX::mktime daar een timestamp van te construeren, maar het kan er bij mij niet in dat hier geen standaardfunctie voor zou bestaan. Met heel wat creatief manual-zoekwerk kon ik echter geen geschikte functie vinden!
De standaard Perl functies bevatten wel functies om timestamps op te splitsen in componenten (gmtime, localtime), maar niet omgekeerd. De POSIX module voegt wat nuttige functies toe, maar geen daarvan doet iets met een tijd in string vorm.
Uiteraard hebben we nog Time::Local en daar staat ook een functie timegm in, die als een inverse voor gmtime wordt gepresenteerd, maar die kan niet op een enkele string werken (terwijl gmtime in scalaire context wel de tijd als een string in ctime formaat oplevert!).
Mijn vraag is dus: bestaat er een standaardmanier om een datum in cstring formaat om te zetten naar een timestamp? Liefst natuurlijk door van standaardmodules gebruik te maken (anders kan ik net zo goed zelf een procedure van een regel of drie schrijven).
Nu ben ik in principe best in staat om de maand, dag, tijd en jaartal uit die string te halen met een simpele reguliere expressie en met POSIX::mktime daar een timestamp van te construeren, maar het kan er bij mij niet in dat hier geen standaardfunctie voor zou bestaan. Met heel wat creatief manual-zoekwerk kon ik echter geen geschikte functie vinden!
De standaard Perl functies bevatten wel functies om timestamps op te splitsen in componenten (gmtime, localtime), maar niet omgekeerd. De POSIX module voegt wat nuttige functies toe, maar geen daarvan doet iets met een tijd in string vorm.
Uiteraard hebben we nog Time::Local en daar staat ook een functie timegm in, die als een inverse voor gmtime wordt gepresenteerd, maar die kan niet op een enkele string werken (terwijl gmtime in scalaire context wel de tijd als een string in ctime formaat oplevert!).
Mijn vraag is dus: bestaat er een standaardmanier om een datum in cstring formaat om te zetten naar een timestamp? Liefst natuurlijk door van standaardmodules gebruik te maken (anders kan ik net zo goed zelf een procedure van een regel of drie schrijven).