簡體   English   中英

Ruby - 檢查日期時間字符串的格式是否正確?

[英]Ruby - Check if datetime string is in proper format?

什么是確認字符串日期時間在 ruby 3 中的格式是否正確的干凈方法? 示例輸入是:

datetime = "2020-02-25T02:57:08.264Z"

我查看了時間 class 並找不到任何內置方式,所以想知道我是否忽略了一些東西。

您可以嘗試解析日期時間字符串並查看它是否引發錯誤。 這是一個版本,它嘗試解析標准的 ISO8601 格式字符串。 如果有異常,它將返回 false; 否則返回真。

def valid_time?(datetime)
  Time.parse(datetime)
  true
rescue
  false
end

valid_time?("2020-02-25T02:57:08.264Z") # returns true
valid_time?("asdasd") # returns false

如果時間字符串的格式不同並且您事先知道格式,那么您可以使用strptime嘗試相同的模式

def valid_time?(time_string, format)
  Time.strptime(time_string, format)
  true
rescue
  false
end

valid_time?("12/32/2020", "%M/%d/%Y") # returns false
valid_time?("12/23/2020", "%M/%d/%Y") # returns true

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM