我想创建Time
的一个子类,比如MyTime
,这样我就可以定义(尤其是与格式相关的)方法,而不会污染Time
类。
class MyTime < Time; end
对于在Time
上定义的一些构造函数方法,我可以在MyTime
中使用它们,如下所示:
MyTime.now
但有时我需要在CCD_ 7的实例的基础上创建CCD_。例如,我想要一个基于的MyTime
实例
File.mtime(path_to_some_file)
其为CCD_ 9实例。构造函数Time#new
不接受Time
实例,所以我不能使用它。我该怎么做?
Time
类有一个at
类方法,该方法以Time
实例为参数:
在(时间)→时间
[…]创建一个新的时间对象,其值由time,[…]给定
所以你可以这样说:
>> class MyTime < Time; end
>> mt = MyTime.at(File.mtime(path_to_some_file))
>> mt.class
=> MyTime
因此,将Time
转换为MyTime
只需调用MyTime.at
即可。