Ruby 日期和时间(和 Python3 日期和时间对比)
Ruby 日期和时间(和 Python3 日期和时间对比)
生成当前时间
# Ruby
[12] pry(main)> Time.now => 2020-08-27 22:41:45.142628288 +0800 [13] pry(main)> Time.now.to_s => "2020-08-27 22:43:46 +0800"
# Python3
>>> import datetime >>> datetime.datetime.now() datetime.datetime(2020, 8, 27, 22, 42, 17, 965778) >>> str(datetime.datetime.now()) '2020-08-27 22:43:40.267643'
生成 Unix 时间
# Ruby
[2] pry(main)> Time.new.to_i => 1599919407
# Python3
>>> import time >>> time.time() 1599919411.7425907
生成指定时间
# Ruby
[8] pry(main)> Time.mktime(2013, 5, 30, 3, 11, 12) => 2013-05-30 03:11:12 +0800 [56] pry(main)> st => "2017-11-23 16:10:10" [57] pry(main)> datetime = DateTime.strptime(st, "%Y-%m-%d %H:%M:%S") => #<DateTime: 2017-11-23T16:10:10+00:00 ((2458081j,58210s,0n),+0s,2299161j)> [58] pry(main)> start_time = Time.new.strftime('%Y-%m-%d %H:%M:%S') => "2020-11-04 11:15:32" [59] pry(main)> require 'time' => true [60] pry(main)> Time.parse(start_time) => 2020-11-04 11:15:32 +0800
# Python3
>>> import time >>> import datetime >>> secs = time.mktime((2013, 5, 30, 3, 11, 12, 0, 0, 0)) >>> time.asctime(time.localtime(secs)) 'Thu May 30 03:11:12 2013' >>> st = "2017-11-23 16:10:10" >>> datetime.datetime.strptime(st, "%Y-%m-%d %H:%M:%S") datetime.datetime(2017, 11, 23, 16, 10, 10)
Time
# Ruby
[15] pry(main)> Time.new.year => 2020 [16] pry(main)> Time.new.month => 8 [18] pry(main)> Time.new.day => 27 [19] pry(main)> Time.new.wday => 4 [20] pry(main)> Time.new.yday => 240 [21] pry(main)> Time.new.hour => 22 [22] pry(main)> Time.new.min => 47 [23] pry(main)> Time.new.sec => 11 [24] pry(main)> Time.new.usec => 229665 [25] pry(main)> Time.new.zone => "CST"
# Python3
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | >>> datetime.datetime.now().year 2020 >>> datetime.datetime.now().month 8 >>> datetime.datetime.now().day 27 >>> datetime.datetime.now().hour 22 >>> datetime.datetime.now().min datetime.datetime(1, 1, 1, 0, 0) >>> datetime.datetime.now().minute 50 >>> datetime.datetime.now().second 26 >>> datetime.datetime.now().microsecond 11814 |
Date
# Ruby
[14] pry(main)> require 'date' => false [15] pry(main)> d = Date.today => #<Date: 2020-09-12 ((2459105j,0s,0n),+0s,2299161j)> [17] pry(main)> d.to_s => "2020-09-12" [18] pry(main)> d.year => 2020 [19] pry(main)> d.month => 9 [20] pry(main)> d.day => 12 [21] pry(main)> d.wday => 6 [22] pry(main)> d.mday => 12 [23] pry(main)> d.yday => 256 [24] pry(main)> d = Date.new(2013, 1, 4) => #<Date: 2013-01-04 ((2456297j,0s,0n),+0s,2299161j)> [25] pry(main)> d.to_s => "2013-01-04"
# Python3
>>> import datetime >>> d = datetime.date.today() >>> d datetime.date(2020, 9, 12) >>> str(d) '2020-09-12' >>> d.year 2020 >>> d.month 9 >>> d.day 12 >>> d = datetime.date(2013, 1, 4) >>> d datetime.date(2013, 1, 4) >>> str(d) '2013-01-04'
格式化时间和日期
# Ruby
[29] pry(main)> Time.new.strftime("%Y-%m-%d %H:%M:%S") => "2020-08-27 22:54:27"
# Python3
>>> import datetime >>> datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") '2020-08-27 22:54:56
Time 运算
# Ruby
[36] pry(main)> now = Time.now => 2020-08-27 23:04:08.084837357 +0800 [37] pry(main)> past = now - 10 => 2020-08-27 23:03:58.084837357 +0800 [38] pry(main)> future = now + 10 => 2020-08-27 23:04:18.084837357 +0800 [39] pry(main)> diff = future - now => 10.0 [49] pry(main)> now = Time.now => 2020-08-27 23:25:33.698087266 +0800 [50] pry(main)> yesterday = Time.now - 24 * 60 * 60 => 2020-08-26 23:25:36.10994221 +0800 [51] pry(main)> tomorrow = Time.now + 24 * 60 * 60 => 2020-08-28 23:26:13.34698554 +0800
# Python3
>>> import datetime >>> now = datetime.datetime.now() >>> now datetime.datetime(2020, 8, 27, 23, 13, 24, 681122) >>> ten_seconds = datetime.timedelta(seconds=10) >>> ten_seconds datetime.timedelta(0, 10) >>> past = now - ten_second >>> past datetime.datetime(2020, 8, 27, 23, 13, 14, 681122) >>> future = now + ten_second >>> future datetime.datetime(2020, 8, 27, 23, 13, 34, 681122) >>> diff = future - now >>> diff datetime.timedelta(0, 10) >>> datetime.date.today() datetime.date(2020, 8, 27) >>> yesterday = datetime.date.today() + datetime.timedelta(days=-1) >>> yesterday datetime.date(2020, 8, 26) >>> tomorrow = datetime.date.today() + datetime.timedelta(days=1) >>> tomorrow datetime.date(2020, 8, 28)
Date 运算
# Ruby
[1] pry(main)> require 'date' => true [2] pry(main)> d1 = Date.new(2013, 1, 1) => #<Date: 2013-01-01 ((2456294j,0s,0n),+0s,2299161j)> [3] pry(main)> d2 = Date.new(2013, 1, 4) => #<Date: 2013-01-04 ((2456297j,0s,0n),+0s,2299161j)> [4] pry(main)> d2 -d1 => (3/1) [10] pry(main)> d = Date.today => #<Date: 2020-09-12 ((2459105j,0s,0n),+0s,2299161j)> [11] pry(main)> d + 1 => #<Date: 2020-09-13 ((2459106j,0s,0n),+0s,2299161j)> [12] pry(main)> d + 100 => #<Date: 2020-12-21 ((2459205j,0s,0n),+0s,2299161j)> [13] pry(main)> d - 1 => #<Date: 2020-09-11 ((2459104j,0s,0n),+0s,2299161j)> [14] pry(main)> d - 100 => #<Date: 2020-06-04 ((2459005j,0s,0n),+0s,2299161j)> [15] pry(main)> d >> 1 => #<Date: 2020-10-12 ((2459135j,0s,0n),+0s,2299161j)> [16] pry(main)> d >> 100 => #<Date: 2029-01-12 ((2462149j,0s,0n),+0s,2299161j)> [17] pry(main)> d << 1 => #<Date: 2020-08-12 ((2459074j,0s,0n),+0s,2299161j)> [18] pry(main)> d << 100 => #<Date: 2012-05-12 ((2456060j,0s,0n),+0s,2299161j)>
# Python3
>>> import datetime >>> d = datetime.date.today() >>> d datetime.date(2020, 9, 12) >>> d + datetime.timedelta(days=1) datetime.date(2020, 9, 13) >>> d + datetime.timedelta(days=100) datetime.date(2020, 12, 21) >>> d + datetime.timedelta(days=-1) datetime.date(2020, 9, 11) >>> d + datetime.timedelta(days=-100) datetime.date(2020, 6, 4)
————————————————
版权声明:本文为CSDN博主「Looooking」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/TomorrowAndTuture/article/details/108270142
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix