Latest web development tutorials
×

Ruby หลักสูตร

Ruby หลักสูตร Ruby แนะนำโดยย่อ Ruby สิ่งแวดล้อม Ruby ติดตั้ง Linux Ruby ติดตั้ง Windows Ruby การเข้ารหัสจีน Ruby เลือกบรรทัดคำสั่ง Ruby ตัวแปรสภาพแวดล้อม Ruby ไวยากรณ์ Ruby ชนิดข้อมูล Ruby คลาสและวัตถุ Ruby กรณีระดับ Ruby ตัวแปร Ruby ผู้ประกอบการ Ruby หมายเหตุ Ruby เงื่อนไข Ruby การไหลเวียน Ruby ทาง Ruby กลุ่ม Ruby โมดูล Ruby เชือก Ruby แถว Ruby กัญชา Ruby วันที่และเวลา Ruby ขอบเขต Ruby iterator Ruby input และ output ไฟล์ Ruby File ชั้นเรียนและวิธี Ruby Dir ชั้นเรียนและวิธี Ruby ผิดปกติ

Ruby การสอนที่ทันสมัย

Ruby เชิงวัตถุ Ruby นิพจน์ปกติ Ruby การเข้าถึงฐานข้อมูล - DBI หลักสูตร Ruby MySQL Ruby CGI โครงการ Ruby CGI ทาง Ruby CGI Cookies Ruby CGI Sessions Ruby ส่ง Email SMTP Ruby Socket โครงการ Ruby XML, XSLT, XPath Ruby Web Services Ruby multithreading Ruby JSON Ruby RubyGems

ทับทิมวันที่และเวลา (Date & Time)

ระดับเวลาในรูบีแทนวันที่และเวลามันขึ้นอยู่กับระบบปฏิบัติการให้วันและเวลาของระบบ ระดับนี้อาจไม่ระบุวันก่อนหรือหลังวันที่ 1970 2038

กวดวิชานี้จะทำความรู้จักกับคุณทุกแนวคิดที่สำคัญของวันที่และเวลา

สร้างวันและเวลาปัจจุบัน

นี่คือตัวอย่างง่ายๆที่จะได้รับวันและเวลาปัจจุบัน:

ตัวอย่าง

#! / usr / bin / ทับทิม -w
# - * - การเข้ารหัส: UTF-8 - * -

TIME1 = Time.new

ทำให้ "ขณะนี้เวลา:" + time1.inspect

# Time.now ฟังก์ชั่นเดียวกัน
time2 = Time.now
ทำให้ "ขณะนี้เวลา:" + time2.inspect

เล่นอินสแตนซ์»

เรียกเอาท์พุทตัวอย่างข้างต้นคือ

当前时间 : 2015-09-17 15:23:14 +0800
当前时间 : 2015-09-17 15:23:14 +0800

ได้รับวันที่และเวลาส่วนประกอบ

เราสามารถใช้วัตถุเวลาที่จะได้รับวันที่และเวลาของส่วนประกอบต่างๆพิจารณาตัวอย่างต่อไปนี้:

#!/usr/bin/ruby -w
# -*- coding: UTF-8 -*-

time = Time.new

# Time 的组件
puts "当前时间 : " + time.inspect
puts time.year    # => 日期的年份
puts time.month   # => 日期的月份(1 到 12)
puts time.day     # => 一个月中的第几天(1 到 31)
puts time.wday    # => 一周中的星期几(0 是星期日)
puts time.yday    # => 365:一年中的第几天
puts time.hour    # => 23:24 小时制
puts time.min     # => 59
puts time.sec     # => 59
puts time.usec    # => 999999:微秒
puts time.zone    # => "UTC":时区名称

เรียกเอาท์พุทตัวอย่างข้างต้นคือ

当前时间 : 2015-09-17 15:24:44 +0800
2015
9
17
4
260
15
24
44
921519
CST

Time.utc,Time.gm และฟังก์ชั่นTime.local

ฟังก์ชั่นเหล่านี้สามารถนำมาใช้เพื่อจัดรูปแบบรูปแบบวันที่มาตรฐานดังต่อไปนี้:

# July 8, 2008
Time.local(2008, 7, 8)  
# July 8, 2008, 09:10am,本地时间
Time.local(2008, 7, 8, 9, 10)   
# July 8, 2008, 09:10 UTC
Time.utc(2008, 7, 8, 9, 10)  
# July 8, 2008, 09:10:11 GMT (与 UTC 相同)
Time.gm(2008, 7, 8, 9, 10, 11)  

ตัวอย่างต่อไปนี้จะได้รับทุกองค์ประกอบในอาร์เรย์:

[sec,min,hour,day,month,year,wday,yday,isdst,zone]

ลองตัวอย่างต่อไปนี้:

#!/usr/bin/ruby -w

time = Time.new

values = time.to_a
p values

เรียกเอาท์พุทตัวอย่างข้างต้นคือ

[39, 25, 15, 17, 9, 2015, 4, 260, false, "CST"]

อาร์เรย์สามารถผ่านTime.utcหรือฟังก์ชั่นTime.localเพื่อให้ได้รูปแบบวันที่ที่แตกต่างกันดังต่อไปนี้:

#!/usr/bin/ruby -w

time = Time.new

values = time.to_a
puts Time.utc(*values)

เรียกเอาท์พุทตัวอย่างข้างต้นคือ

2015-09-17 15:26:09 UTC

นี่คือวิธีการที่จะได้รับเวลาจำนวนวินาทีตั้งแต่ยุค (ขึ้นอยู่กับแพลตฟอร์ม) ไปนี้:

# 返回从纪元以来的秒数
time = Time.now.to_i  

# 把秒数转换为 Time 对象
Time.at(time)

# 返回从纪元以来的秒数,包含微妙
time = Time.now.to_f

เขตเวลาและปรับเวลาตามฤดูกาล

คุณสามารถใช้วัตถุเวลาที่จะได้รับข้อมูลทั้งหมดและโซนเวลาและปรับเวลาตามฤดูกาลที่เกี่ยวข้องดังต่อไปนี้:

time = Time.new

# 这里是解释
time.zone       # => "UTC":返回时区
time.utc_offset # => 0:UTC 是相对于 UTC 的 0 秒偏移
time.zone       # => "PST"(或其他时区)
time.isdst      # => false:如果 UTC 没有 DST(夏令时)
time.utc?       # => true:如果在 UTC 时区
time.localtime  # 转换为本地时区
time.gmtime     # 转换回 UTC
time.getlocal   # 返回本地区中的一个新的 Time 对象
time.getutc     # 返回 UTC 中的一个新的 Time 对象

เวลาและวันที่ในรูปแบบ

มีหลายวิธีในการจัดรูปแบบวันที่และเวลา ตัวอย่างต่อไปนี้แสดงให้เห็นถึงส่วนหนึ่ง:

#!/usr/bin/ruby -w
time = Time.new

puts time.to_s
puts time.ctime
puts time.localtime
puts time.strftime("%Y-%m-%d %H:%M:%S")

เรียกเอาท์พุทตัวอย่างข้างต้นคือ

2015-09-17 15:26:42 +0800
Thu Sep 17 15:26:42 2015
2015-09-17 15:26:42 +0800
2015-09-17 15:26:42

เวลาคำแนะนำการจัดรูปแบบ

วิธีการเรียนการสอนที่ใช้ในการร่วมกับTime.strftimeระบุไว้ในตารางต่อไปนี้

指令描述
%a星期几名称的缩写(比如 Sun)。
%A星期几名称的全称(比如 Sunday)。
%b月份名称的缩写(比如 Jan)。
%B月份名称的全称(比如 January)。
%c优选的本地日期和时间表示法。
%d一个月中的第几天(01 到 31)。
%H一天中的第几小时,24 小时制(00 到 23)。
%I一天中的第几小时,12 小时制(01 到 12)。
%j一年中的第几天(001 到 366)。
%m一年中的第几月(01 到 12)。
%M小时中的第几分钟(00 到 59)。
%p子午线指示(AM 或 PM)。
%S分钟中的第几秒(00 或 60)。
%U当前年中的周数,从第一个星期日(作为第一周的第一天)开始(00 到 53)。
%W当前年中的周数,从第一个星期一(作为第一周的第一天)开始(00 到 53)。
%w一星期中的第几天(Sunday 是 0,0 到 6)。
%x只有日期没有时间的优先表示法。
%X只有时间没有日期的优先表示法。
%y不带世纪的年份表示(00 到 99)。
%Y带有世纪的年份。
%Z时区名称。
%%% 字符。

เวลาอัลกอริทึม

คุณสามารถใช้เวลาในการทำบางคณิตศาสตร์ที่เรียบง่ายดังต่อไปนี้:

now = Time.now           # 当前时间
puts now

past = now - 10          # 10 秒之前。Time - number => Time
puts past

future = now + 10        # 从现在开始 10 秒之后。Time + number => Time
puts future

diff = future - now      # => 10  Time - Time => 秒数
puts diff

เรียกเอาท์พุทตัวอย่างข้างต้นคือ

2015-09-17 15:27:08 +0800
2015-09-17 15:26:58 +0800
2015-09-17 15:27:18 +0800
10.0