gpt4 book ai didi

lua - Lua日期格式和比较

转载 作者:行者123 更新时间:2023-12-04 17:01:27 26 4
gpt4 key购买 nike

您如何将日期与lua进行比较?日期的最佳字符串格式是什么?我应该将日期存储在时代里吗?我正在寻找性能...

最好的方法是os.difftime吗?

最佳答案

您在问几件事,所以这是我的答案:


我应该将日期存储在时代里吗?


通常,是的,存储日期的最佳方法是使用纪元,如os.time返回的


您如何将日期与lua进行比较?


这取决于您要如何“比较”它们。

如果您只想知道哪个是较新/较旧的,那么最简单,最快的方法是将它们存储为“ epoch”,然后执行date1 < date2;。由于两个日期都是数字,因此既高效又干净。

如果您想知道在两个给定日期之间经过了多少个月/天/年,那就有点复杂了。您将需要类似于以下代码:

diff = os.date("*t", os.difftime(date1, date2))


在该示例中,返回的 diff是类似于 {year=1, month=5, day=1, hour=2, min=3, sec=40 ...}的表


我正在寻找性能...


如果您经常使用 os.date()将历元转换为日期(例如,用于打印),那么您可能希望在表中“缓存”年,月等信息,因此您不必再次调用它然后再次。但是,只有当您的表现不佳时,才可以这样做。不要预先优化。


日期的最佳字符串格式是什么?


这完全取决于您要如何使用它们。例如,如果您的应用与需要特定日期格式的其他服务进行交互,则在所有应用中都使用该格式是有意义的。

如果您不需要特别使用格式,则一个候选者是( %x):

os.date("%x", date) -- 09/16/1998 (for example)


给您的字符串取决于计算机的语言环境。这可能是合乎要求的,也可能不是。

如果希望所有计算机上的表示形式都相同,而与它们的语言环境无关,则可能需要尝试使用标准格式,例如 ISO 8601

os.date("%Y-%m-%d", date) -- returns "1998-09-16" in all computers


这种格式有很多优点。最明显的是,按字母顺序排列的日期也按时间顺序排列。但是最重​​要的是,那里有很多软件可以读取/使用它。

您可以在 Programming in Lua, Section 22.1 - Date and Timelua-users wiki中找到有关日期的更多信息。

关于lua - Lua日期格式和比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9560142/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com