web-dev-qa-db-fra.com

Obtention de l'horodatage UTC UNIX dans Lua

Une API renvoie un horodatage en tant qu'horodatage UNIX à UTC et je voudrais savoir si cet horodatage était il y a plus de x secondes. Comme prévu, cela fonctionne correctement avec os.time() - x > timestamp en UTC, mais explose dans d'autres fuseaux horaires.

Malheureusement, je ne trouve pas de bon moyen de résoudre ce problème à Lua.

os.date A utilement le préfixe ! (Par exemple os.date("!%H:%M:%S")) pour renvoyer l'heure à UTC, mais il semble que malgré la documentation indiquant qu'il supporte toutes les options strftime , cela ne prend pas en charge l'option %s. J'ai entendu des gens mentionner que cela était dû aux options de temps de compilation de Lua pour un problème similaire, mais les modifier n'est pas possible car l'interprète est fourni par l'utilisateur.

11
Azsgy

Vous pouvez utiliser

os.time(os.date("!*t"))

pour obtenir l'époque UNIX actuelle.

10
Joe