• ROR相关:日期格式调整

  • Pic Name: Jetty Tag: RubyOnRails

    Time类相关:
    格式化应用实例:

    puts Time.now.strftime(“%Y-%m-%d %H:%M:%S”) #2018-05-13 15:28:08

    puts Time.now.strftime(“%x %I:%M %p”) #05/13/18 03:39 PM

     

    所有strftime方法中可用的格式化符号:

    %a 星期的缩写,如Wed 
    %A 星期的全称,如Wednesday 
    %U 本星期在全年中所属的周数 
    %W 
    %H 小时(24小时制) 
    %M 分钟 
    %S 秒 
    %I 小时(12小时制) 
    %p PM 或 AM

    %b 月份的缩写,如 Jan 
    %B 月份的全称,如 January 
    %c 本地日期和时间,如 05/13/18 16:43:49 
    %d 日期 (1..31) 
    %j 本日在一年中所属的天 (1..366) 
    %m 月份 (1..12) 
    %w 星期的数字形式 (0..6) 
    %x 本地日期,如 06/14/07 
    %X 本地时间,如 16:43:49 
    %y 2位的年份表示,如07 
    %Y 4位的年份表示,如2007 
    %Z 时区名,如”中国标准时间” 
    %% 字面符号%

    我们可以使用Time类来生成一个当前时间的对象: 
    t = Time.new 
    或 
    t = Time.now

    Time类有类方法mktime(同义方法是local方法)来根据传入的参数生成时间对象,并且它使用的是当前的时区: 
    t1 = Time.mktime(2018) # January 1, 2018 at 0:00:00 
    t2 = Time.mktime(2018,5) 
    t3 = Time.mktime(2018,5,13) 
    t4 = Time.mktime(2018,5,13,21) 
    t5 = Time.mktime(2018,5,13,21,30) 
    t6 = Time.mktime(2018,5,13,21,30,15) # March 15, 2018 9:30:15 pm

    Time.gm(同义方法是Time.utc)方法基本上和上面的mktime用法相同,但它使用的是GMT或UTC时区 
    t8 = Time.gm(2018,5,13,21,30,15) 
    t9 = Time.utc(2018,5,13,21,30,15)

    生成的时间对象有一个to_a方法,可以把时间相关一信息转化成一个数组,数组中存放的信息格式如下: 
    seconds, minutes, hours, day, month, year, day of week (0..6), day of year (1..366), daylight saving (true or false), and time zone (as a string)

     

    使用秒数来创建日期:

    在内部,日期存储为一个整数,代表从1970年开始到当前的秒数,我们可以获取这么秒数或则利用这个秒数来创建日期: 
    epoch = Time.at(0) # Find the epoch (1 Jan 1970 GMT) 
    newmil = Time.at(978307200) # Happy New Millennium! (1 Jan 2001)

    now = Time.now # 16 Nov 2000 17:24:28 
    sec = now.to_i # 974424268

     

    日期的格式化:

    获取本日是星期几: 
    now = Time.now + 1 
    day_num = now.wday #3 
    day_abbr = now.strftime(“%a”) #Wed 
    day_full = now.strftime(“%A”) #Wednesday

    获取一年中本日所在的周: 
    t1 = Time.local(2002,5,1) 
    1 = Date.new(2002,5,1)

    week1a = t1.strftime(“%U”).to_i # 17 
    week1b = t1.strftime(“%W”).to_i # 17 
    week1c = d1.cweek # 18

    获取当前时区: 
    z1 = Time.gm(2000,11,10,22,5,0).zone # “UTC” 
    z2 = Time.local(2000,11,10,22,5,0).zone # “中国标准时间”

    Posts共1条评论

    • Pic User: Jetty date: Sunday May 13,2018

      上述内容学习自RailsGuide和前辈博客,内容已测试。

Pic

登陆进行评论

  • 国历日期:

欢迎来信