生成当前时间

# 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
[1] pry(main)> Time.new.to_i
=> 1599919407[2] pry(main)> Time.at(2**31)
=> 2038-01-19 11:14:08 +0800[3] pry(main)> st = "2038-01-19 11:14:08"
=> "2038-01-19 11:14:08"
[4] pry(main)> Time.strptime(st, "%Y-%m-%d %H:%M:%S").to_i
=> 2147483648
# Python3
>>> import time
>>> int(time.time())
1599919411>>> import datetime
>>> datetime.datetime.fromtimestamp(2**31)
datetime.datetime(2038, 1, 19, 11, 14, 8)>>> st = "2038-01-19 11:14:08"
>>> int(time.mktime(time.strptime(st, "%Y-%m-%d %H:%M:%S")))
2147483648

生成指定时间

# 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
>>> 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)

今天一年当中的第几天

>>> import datetime
>>> datetime.datetime.now().strftime("%j").lstrip("0")
'329'

时间不够啦

[68] pry(main)> Time.at(2**31)
=> 2038-01-19 11:14:08 +0800
[69] pry(main)> Time.mktime(2038, 1, 19, 11, 14, 8).to_i == 2 ** 31
=> true

对于数据库中使用 有符号 Integer 类型作为 unix 时间戳的字段类型的,赶紧注意一下吧!

Ruby 日期和时间(和 Python3 日期和时间对比)相关推荐

  1. Ruby 字符串操作(和 Python3 字符串操作进行对比)

    本来是想写到 Ruby 学习笔记一块的,但是字符串操作这块的内容确实太多了,所以单独提取出来了. Ruby 和 Python 两种语言都支持单引号和双引号的字符串.话不多说,直接上菜(为了对比明显,R ...

  2. Ruby 数组操作(和 Python3 列表+元组+集合 对比)

    本来是想写到 Ruby 学习笔记一块的,但是数组操作这块的内容也太多了,所以单独提取出来了.Ruby 里没有单独的集合的概念,或许是因为数组就已经足够涵盖了这些了.所以,话不多说,直接上菜(为了对比明 ...

  3. python3菜鸟教程中文-Python3 日期和时间

    Python3 日期和时间 Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能. Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间. 时间 ...

  4. Python3 日期时间 相关模块(time(时间) / datatime(日期时间) / calendar(日历))

    Python3 日期时间 相关模块(time(时间) / datatime(日期时间) / calendar(日历)) 本文由 Luzhuo 编写,转发请保留该信息. 原文: http://blog. ...

  5. python日期迭代_计算敏捷项目中迭代时间安排(Python3版)

    节奏是敏捷开发的核心,保持合理固定的节奏,能有效的促使各个环节协调统一,高效运行.针对产品的不同周期,方案有所不同. 迭代开发.jpg 通常,我们需要在一个时间盒中去分配一个项目中不同阶段的时间,在项 ...

  6. Python3 日期与时间戳相互转换

    开发中经常会对时间格式处理,对于时间数据,比如2019-02-28 10:23:29,有时需要日期与时间戳进行相互转换,在Python3中主要用到time模块,相关的函数如下: 其中unix_time ...

  7. python 日期格式月份不加前导,Python datetime时间格式化去掉前导0

    Python datetime时间格式化去掉前导0 Python时间格式化的时候,去掉前导0的: dt = datetime.now() print dt.strftime('%-H') #结果是: ...

  8. python 时间time()及日期date()函数

    Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能. Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间. 时间间隔是以秒为单位的浮点小数. ...

  9. 将UTC日期时间转换为本地日期时间

    本文翻译自:Convert UTC date time to local date time From the server I get a datetime variable in this for ...

  10. 日期格式化为yyyymmdd_大厂日期时间处理最佳实践

    1 背景 Java8前,处理日期时间时,使用的"三大件" Date Calender SimpleDateFormat 以声明时间戳.使用日历处理日期和格式化解析日期时间.但这些类 ...

最新文章

  1. input的onkeyup效果 超级简短代码
  2. 3 Git 分支 - 分支管理
  3. 华为nova5i计算机有计算记录吗,华为nova 5i正式发布,看完价格后:还是算了吧!...
  4. C语言 · 龟兔赛跑预测
  5. 7-1 两个有序链表序列的合并 (15 分)
  6. linux中date使用方法,linux命令详解date使用方法(计算母亲节和父亲节日期脚本示例)...
  7. centos7上安装phpcms
  8. 润乾报表-数据源的选取不能选视图
  9. Eclipse 语言包下载地址
  10. WIFI工具移植之IW工具移植
  11. 最快倾斜摄影三维建模-台式、便携、多机集群配置推荐
  12. Linux:面试常被问到的命令(持续更新)
  13. 索尼6400夜景测试 镜头索尼18-55
  14. 金誉半导体:MOS管耗尽型和增强型是什么意思?
  15. 搜集源码之github搜索语法,网盘搜索,搜索引擎等
  16. VAR-MVGARCH-BEKK模型的winrats实现
  17. 单片机之时钟工作原理
  18. 看《奇迹.笨小孩》有感
  19. cython_bbox库就该这么安装
  20. 为何使用云原生应用架构 一 :独霸天下之四大绝技

热门文章

  1. 统计一个英文句子中包含2个a的单词有几个,并将两个a替换为星号,不能用count函数...
  2. Ubuntu中文路径改英文路径
  3. 新零售不简单,当初马云自己都没解释清楚! 1
  4. 深圳大学计算机语言学,2016深圳大学英语语言文学考研经验贴
  5. C++入门基础教程(一):C语言的指针与结构体到底怎么用?
  6. Javascript 技巧大全
  7. 晚46天行动,华为移动开放平台HiAI被抢注,陷入数年商标争夺战
  8. 新梦想大学咖一级计算机考证
  9. Python基础知识串讲PPT
  10. uniapp自定义相机功能