Cách sử dụng class Time & Date trong Ruby (Phần 1)

Tram Ho

Time là một class trong Ruby, nó sẽ giúp chỉnh sửa format, trích xuất thông tin một cách hiệu quả theo ý của bạn.

Sau bài đọc này, bạn có thể tìm hiểu mọi thứ bạn cần để trở thành Doraemon quản lý cỗ máy thời gian :v Just kidding ?

  • Topic hôm nay chúng ta có gì nào
    • Làm thế nào để convert một chuỗi tring thành một đối tượng thời gian(Time object)?
    • Làm thế nào để break down thời gian từ các thành phần có sẵn(day, hour, milliseconds…v.v)?
    • Làm thế nào để sử dụng Date, Datetime & Time Class trong Ruby?
    • Làm thế nào để format time theo bất cứ cách nào bạn muốn?

Okayyy, Let’s get started ?

Time class trong Ruby

Bạn có thể sử dụng Time class trong Ruby để đại diện cho time & date

Date thì có 3 thành phần phải không nào:

  • day
  • month
  • year

time

  • hours
  • minutes
  • seconds

Thông tin này được lưu trữ bởi Time class dưới dạng số giây kể từ Kỷ nguyên, hay còn được gọi là Unix time.

Bạn cố thể tạo một đối tượng Time bằng những cách sau:

  • Bạn có thể lấy một đối tượng đại diện cho thời gian hiện tại bằng cách sử dụng Time.now. Lưu ý thời gian này sẽ tương ứng với zone hiện tại theo server của bạn. Ví dụ như server của mình đang bên Nhật thì Time.now sẽ tương ứng với múi giờ +9 của Nhật.

  • Bạn có thể tạo một đối tượng Time sử dụng dấu thời gian Unix và phương thức at
  • Bạn có thể cung cấp ngày bắt đầu làm tham số bằng cách khởi tạo đối tượng [Time.new](http://time.new) theo (format: year/month/day)

Ví tờ dụ sẽ như thế này

Ngoài ra bạn có thể lấy thông tin của ngày, tháng, giờ bằng cách sử dụng day,month,hour

Bạn có thể kiểm tra “Hôm nay có phải là chủ nhật không?” bằng cách sử dụng phương thức chủ nhật?

Mình đùa đấy, đừng làm điều dại dột thế nhé :v

Bạn có thể sử dụng hàm như .monday?, .sunday?, .friday?..v.v. ⇒ Sẽ trả về giá trị true, false tương ứng.

Time Zones

Một đối tượng Time sẽ có một múi giờ tương ứng với nó

Bạn có thể kiểm tra múi giờ hiện tại cho đối tượng Time của mình bằng cách sử dụng hàm zone

Bạn có thể xem các múi giờ viết tại tại link này time zone abbreviation

Ví dụ ảnh trên của mình đang là JST là viết tắt của từ Japan Standard Time và có múi giờ +09 theo chuẩn quốc tế.

Ruby Time Formatting

Ruby sẽ format đối tượng Time theo một cách mặc định

Nếu bạn không muốn default như thế? Bạn muốn hiển thị giờ theo tiếng Việt, Nhật, Ả rập thì phải làm sao??

Phương thức strftime sẽ là thứ giúp bạn giúp bạn thay đổi format hầu hết các định dạng bạn cần.

Nó làm việc bằng cách truyền vào một chuỗi string với các mã định dạng, các mã định dạng này sẽ được thay thế bằng một giá trị.

Bạn có thể thấy, phương thức này rất linh hoạt phải không nào. Bạn có thể nhận được thời gian không có ngày hoặc ngày được định dạng độc đáo với năm, ngày và tên của tháng hiện tại.

Bạn có thể tìm kiếm các format có sẵn dưới đây:

Phần 1 của mình tạm thời kết thúc tại đây. Phần 2 mình sẽ giới thiệu cho các bạn về class Date trong Ruby, thêm và trừ thời gian, thay đổi format Date & Time, ActiveSupport – Time & Date Methods…v.v

Cùng đón chờ nhé ?, đừng quên comment phía dưới nếu có thắc mắc hoặc góp ý cho mình. Mình rất mong chờ những góp ý của các bạn để có thể cải thiện ở những bài viết sau ❤️

We learn, we share together !

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo