Time.local和Time.new之间有什么区别

  • 本文关键字:Time 区别 之间 local new ruby
  • 更新时间 :
  • 英文 :


Time.local与Time.new

两个方法都返回Time对象。

irb(main):005:0> Time.new(2020,1,1).class
=> Time
irb(main):006:0> Time.local(2020, 1, 1).class
=> Time
irb(main):007:0> Time.local(2020, 1, 1)
=> 2020-01-01 00:00:00 +0900
irb(main):008:0> Time.new(2020,1,1)
=> 2020-01-01 00:00:00 +0900
irb(main):009:0>

我不知道什么时候该用每种方法。

Time.localTime.new

  1. Time.local将在未给定参数的情况下出错,而Time.new则在未给定任何参数的情况下初始化为当前系统时间。

  2. Time.local将始终返回本地时区中的值。CCD_ 7接受时区参数&如果给定,则返回相应时区中的值。

检查此

2.5.1 :018 > Time.new.zone
=> "IST"
2.5.1 :019 > Time.new
=> 2020-11-18 19:50:30 +0530
2.5.1 :020 > Time.local
Traceback (most recent call last):
3: from /Users/salilgaikwad/.rvm/rubies/ruby-2.5.1/bin/irb:11:in `<main>'
2: from (irb):20
1: from (irb):20:in `local'
ArgumentError (wrong number of arguments (given 0, expected 1..8))
2.5.1 :021 > Time.new(2020,11,18,15,25,0, "+09:00")
=> 2020-11-18 15:25:00 +0900
2.5.1 :022 > Time.local(2020,11,18,15,25,0, "+09:00")
=> 2020-11-18 15:25:00 +0530

看起来您必须将参数传递到#local,r,而不需要将参数传递给#new,它将返回当前时间。

最新更新