红宝石中Time.new(年,月,日)和Time.local(年,月,日)之间的差异

时间:2012-03-10 13:35:57

标签: ruby

我看到Time类有不同的方法来实现一个新的Time对象,调用Time.new或.local或mktime之间的区别是什么?

以不同的名称分享他们相同的实现?

我在Ruby文档中看到Time,默认情况下,构造函数new用可选参数设置为nil表示 其他方法如.local和mktime对每个不同的符号都有一个重载 这只是因为你不能在Ruby中为构造函数提供重载吗?

1 个答案:

答案 0 :(得分:0)

Time.mktimeTime.local的同义词,并根据您提供的值创建时间。 Time.new使用系统中的时间值来创建对象。

我发现this非常有用:

  

Time.new - > aTime返回初始化为当前的Time对象   系统时间。注意:创建的对象将使用   您的系统时钟可用的分辨率,因此可能包括   小秒数。

     

Time.gm(年[,月,日,小时,分钟,秒,用途]) - > ATIME   Time.gm(秒,分钟,小时,日,月,年,日,日,日,tz) - >   aTime根据给定值创建时间,解释为UTC(GMT)。   必须指定年份。其他值默认为最小值   对于该领域(可能是零或省略)。月份可以指定   数字从1到12,或三个字母的英文月份名称。   小时数以24小时制(0..23)指定。提高了   如果任何值超出范围,则为ArgumentError。也会接受十个   Time#to_a输出的顺序中的参数。   Time.local(年[,月,日,小时,分钟,秒,用户]) - > ATIME   Time.local(秒,分钟,小时,日,月,年,日,星期日,isdst,tz)    - > aTime与Time.gm相同,但解释本地时区的值。

     

Time.mktime(年,月,日,小时,分钟,秒,用户) - > aTime同义词   对于Time.local。