
代码示例:
在 Ruby 中,Time 对象提供了丰富的函数用于处理日期和时间。以下是对常用函数的总结及详细示例:
创建时间对象
-
Time.new和Time.now:返回当前时间的Time对象。current_time = Time.new puts current_time.inspect # => "2025-02-23 15:30:00 +0800"Time.new和Time.now的区别在于,Time.new会调用initialize方法。 -
Time.local和Time.mktime:创建地方时的Time对象。local_time = Time.local(2025, 2, 23, 15, 30, 0) puts local_time.inspect # => "2025-02-23 15:30:00 +0800" -
Time.gm和Time.utc:创建协调世界时(UTC)的Time对象。utc_time = Time.gm(2025, 2, 23, 15, 30, 0) puts utc_time.inspect # => "2025-02-23 15:30:00 UTC" -
Time.at:根据自纪元(1970-01-01 00:00:00 UTC)以来的秒数创建Time对象。time = Time.at(1735377000) puts time.inspect # => "2025-02-23 15:30:00 +0800"
时间的基本操作
-
加减操作:可以对时间进行加减操作,单位为秒。
now = Time.now future_time = now + 3600 # 1小时后 past_time = now - 3600 # 1小时前 puts future_time.inspect puts past_time.inspect -
时间比较:可以比较两个时间对象。
t1 = Time.new(2025, 2, 23) t2 = Time.new(2025, 2, 24) puts t1 < t2 # => true
获取时间的各个组成部分
-
年、月、日、小时、分钟、秒:
time = Time.new puts time.year # => 2025 puts time.month # => 2 puts time.day # => 23 puts time.hour # => 15 puts time.min # => 30 puts time.sec # => 0 -
星期几:
wday返回星期几,0 表示星期日,1 表示星期一,以此类推。puts Time.new.wday # => 0(星期日) -
一年中的第几天:
yday返回一年中的第几天。puts Time.new.yday # => 54
时间格式化
strftime:根据指定的格式将时间转换为字符串。time = Time.new puts time.strftime("%Y-%m-%d %H:%M:%S") # => "2025-02-23 15:30:00" puts time.strftime("%a %b %d %H:%M:%S %Y") # => "Sun Feb 23 15:30:00 2025"
时区相关操作
-
utc?和gmt?:判断时间是否为 UTC。utc_time = Time.utc(2025, 2, 23) puts utc_time.utc? # => true -
getutc和getgm:将时间转换为 UTC。local_time = Time.local(2025, 2, 23) utc_time = local_time.getutc puts utc_time.inspect # => "2025-02-23 07:30:00 UTC" -
localtime:将时间转换为本地时间。utc_time = Time.utc(2025, 2, 23) local_time = utc_time.localtime puts local_time.inspect # => "2025-02-23 15:30:00 +0800"
这些函数和方法使得 Ruby 中的 Time 对象非常强大,可以满足各种日期和时间处理的需求。
喜欢本文,请点赞、收藏和关注!
如能打赏、那更好了!
Ruby时间处理函数及示例解析
78

被折叠的 条评论
为什么被折叠?



