Random 如何生成随机时间?

Random 如何生成随机时间?,random,time,crystal-lang,Random,Time,Crystal Lang,如何在Time::UNIX\u EPOCH和Time.local之间生成随机的Time 我需要它来洗牌一个数组,然后按Time字段排序 Time.unix(Random.new.rand(Time::UNIX_EPOCH.to_unix..Time.local.to_unix)) 或者,您可以使用固定时间(例如UNIX\u EPOCH)并添加随机时间跨度 Time::UNIX_EPOCH.shift seconds: rand(1_000_000_000) 如果您不关心时区,那么应该使用ti

如何在
Time::UNIX\u EPOCH
Time.local
之间生成随机的
Time

我需要它来洗牌一个数组,然后按
Time
字段排序

Time.unix(Random.new.rand(Time::UNIX_EPOCH.to_unix..Time.local.to_unix))

或者,您可以使用固定时间(例如
UNIX\u EPOCH
)并添加随机时间跨度

Time::UNIX_EPOCH.shift seconds: rand(1_000_000_000)

如果您不关心时区,那么应该使用
time.utc
,而不是
time.local
,因为您无论如何都不关心特定的时间值,所以似乎就是这样。它稍微快一点,更好地表达意图。@JohannesMüller,谢谢,这是一个很好的观点。非常优雅,谢谢。可能更短:
Time.unix(rand(Time::unix\u EPOCH.to\u unix..Time.local.to\u unix))