我想檢查在紅寶石中輸入日期的iso8601格式,如start_date =「2011/05/05」應該匹配格式爲2011-05-05T00:00:00-04:00並且相應地返回錯誤。 我們應該在這裏使用正則表達式還是存在任何方法?如何在ruby中匹配YYYY-MM-DDThh:mm:ssTZD時區格式
6
A
回答
8
聽起來像是你想Time.iso8601
:
require 'time'
iso = Time.iso8601(start_date)
更多信息請參見this blog post。
編輯:這裏是一個簡短但完整的測試程序,它的工作原理:
require 'time'
text = "2011-05-05T00:00:00-04:00"
parsed = Time.iso8601(text)
puts parsed
輸出:
Thu May 05 04:00:00 UTC 2011
3
對於正則表達式驗證(使用可選微秒和時區)使用方法:
^(-?(?:[1-9][0-9]*)?[0-9]{4})-(1[0-2]|0[1-9])-(3[0-1]|0[1-9]|[1-2][0-9])T(2[0-3]|[0-1][0-9]):([0-5][0-9]):([0-5][0-9])(\.[0-9]+)?(Z|[+-](?:2[0-3]|[0-1][0-9]):[0-5][0-9])?$
測試日期: http://rubular.com/r/qFFrhzvdsS
性能問題時不推薦在腳本中使用!
相關問題
- 1. 如何在Ruby中匹配=〜
- 2. 時間戳格式匹配
- 3. 正則表達式匹配在Ruby中
- 4. 在Ruby中匹配正則表達式
- 5. 如何在Ruby中使用正則表達式匹配空格或行尾?
- 6. 如何在C#和Ruby中匹配輸出格式MD5哈希字符串?
- 7. 如何在Ruby正則表達式中匹配韓文字符?
- 8. 如何使用正則表達式在Ruby 1.8.7中匹配URL
- 9. Ruby模式完全匹配
- 10. Ruby中的Extglob語法樣式匹配
- 11. 如何在模式匹配
- 12. 如何在模式匹配
- 13. Ruby時區在Windows 7中返回完整格式
- 14. 匹配APA參考格式的Ruby正則表達式
- 15. 匹配日期格式+ XX小時
- 16. 時間不匹配格式「%Y-%間%d」
- 17. python匹配時間格式re
- 18. Ruby Regex:如何匹配遵循另一種模式的模式?
- 19. 如何匹配「匹配」表達式?
- 20. 如何匹配用戶引入小時的格式HH:MM
- 21. 在模式匹配中在Ruby中使用casecmp
- 22. Ruby Gemfile與Ruby版本不匹配,但匹配ruby -v輸出
- 23. 如何在Jquery中使用時區格式化日期時間?
- 24. 如何在Postgres中格式化「帶時區的時間」?
- 25. 日期時間匹配格式,月份在字符串中
- 26. SOAP服務中的時區不匹配
- 27. Java中的時區不匹配
- 28. 文件名格式匹配
- 29. 不匹配格式HH:MM:SS
- 30. Python:strptime不匹配的格式
澄清...如果我提供text =「2011-02-30T00:00:00」parsed = Time.iso8601(text)given => Wed Mar 02 00:00:00 +0000 2011,調整日期,我們可以避免這種情況,並拋出errors.Hill我去自定義驗證或它是可用的,也Time.iso8601(文本)崩潰的應用程序時提供無效的日期,我們可以只匹配後返回布爾值... – Bijendra 2012-01-18 13:12:10