Tôi muốn kiểm tra định dạng iso8601 cho ngày được nhập bằng ruby, như start_date = "2011/05/05" phải khớp đối với định dạng 2011-05-05T00: 00: 00-04: 00 và lỗi được trả về tương ứng. Chúng ta có nên sử dụng regex ở đây hay bất kỳ phương pháp nào có mặt cho điều này?Cách khớp với định dạng múi giờ YYYY-MM-DDThh: mm: ssTZD trong ruby
6
A
Trả lời
8
Âm thanh như bạn muốn Time.iso8601
:
require 'time'
iso = Time.iso8601(start_date)
Xem this blog post để biết thêm thông tin.
EDIT: Đây là một chương trình thử nghiệm ngắn nhưng đầy đủ mà hoạt động:
require 'time'
text = "2011-05-05T00:00:00-04:00"
parsed = Time.iso8601(text)
puts parsed
Output:
Thu May 05 04:00:00 UTC 2011
3
Đối với xác nhận regex (với micro tùy chọn và múi giờ) sử dụng:
^(-?(?:[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])?$
Kiểm tra trên: http://rubular.com/r/qFFrhzvdsS
Không được đề xuất trong tập lệnh khi các vấn đề về hiệu suất!
Các vấn đề liên quan
- 1. Ngày định dạng Android với múi giờ
- 2. Làm thế nào để có được DateTime.Now() trong YYYY-MM-DDThh: mm: Định dạng ssTZD sử dụng C#
- 3. Định dạng chuỗi ngày giờ mặc định với múi giờ
- 4. Cách chuyển đổi thời gian ở định dạng YYYY-MM-DDTHH: mm: ss.SSSZ thành múi giờ mặc định?
- 5. Định dạng múi giờ datetime
- 6. Moment.js: Ngày định dạng trong một múi giờ cụ thể
- 7. Truy xuất nhật ký git theo định dạng YYYY-MM-DD theo múi giờ địa phương
- 8. git: múi giờ và timestamp định dạng
- 9. JSF convertDateTime với múi giờ trong DataTable
- 10. Cách chỉ định múi giờ trong UIDatePicker
- 11. C# string đến DateTime với múi giờ
- 12. Mẫu chính xác để phân tích cú pháp định dạng múi giờ với SimpleDateFormat
- 13. Chuyển đổi định dạng 12 giờ sang định dạng 24 giờ trong Ruby
- 14. Làm cách nào để định dạng javax.time.Instant dưới dạng chuỗi trong múi giờ địa phương?
- 15. muốn ngày và giờ hiện tại theo định dạng "dd/MM/yyyy HH: mm: ss.SS"
- 16. Định dạng ngày giờ với Javascript
- 17. Nhận định dạng tháng theo định dạng mm trong javascript
- 18. Chuyển chuỗi thành ngày có múi giờ
- 19. postgres múi giờ mặc định
- 20. dưới dạng múi giờ GMT/UTC khi múi giờ mặc định là một cái gì đó khác
- 21. Sử dụng strptime% z với định dạng múi giờ đặc biệt
- 22. Cách dọn dẹp để chuyển đổi định dạng dd-mm-yyyy sang định dạng dd/mm-yyyy trong Javascript
- 23. Python pytz Chuyển đổi dấu thời gian (định dạng chuỗi) từ một múi giờ sang một múi giờ khác
- 24. Parsing ISO 8601 với múi giờ để NET datetime
- 25. Ngày phân tích cú pháp với Joda với múi giờ
- 26. Cách nhận ngày, năm, giờ, phút Riêng lẻ từ định dạng ngày "yyyy-MM-dd'T'HH: mm: ss.SSSZ"?
- 27. cách in múi giờ địa phương ở định dạng posix trong java (android)?
- 28. Java GregorianCalendar múi giờ
- 29. Sự cố múi giờ trong Android
- 30. Cách đặt định dạng ngày và giờ trong IIS 7
giải thích ... Nếu tôi cung cấp văn bản = "2011-02-30T00: 00: 00" được phân tích cú pháp = Time.iso8601 (văn bản) cho => Thứ tư ngày 02 tháng 2 00:00:00 +0000 2011, điều chỉnh ngày, chúng ta có thể tránh điều này và ném lỗi. Tôi sẽ đi để xác nhận tùy chỉnh hoặc nó có sẵn., cũng Time.iso8601 (văn bản) treo ứng dụng khi ngày không hợp lệ được cung cấp, chúng ta có thể chỉ trả lại boolean sau khi kết hợp ... – Bijendra