Hàm để lấy ngày giờ từ chuỗi, datetime.strptime(date_string, format)
yêu cầu định dạng chuỗi làm đối số thứ hai. Có cách nào để xây dựng một datetime từ một chuỗi mà không cần biết định dạng chính xác, và có Python đoán tốt nhất không?datetime từ chuỗi trong Python, định dạng chuỗi đoán tốt nhất
Trả lời
Trở lại trước khi tôi là một anh chàng python, tôi là một anh chàng perl. Một trong những điều mà tôi đã luôn luôn bỏ lỡ nhưng không thấy bất cứ điều gì gần với nó là Date::Manip. Mô-đun đó có thể trích xuất một dấu thời gian tốt từ một loạt các nibbles. Tôi gần như nghi ngờ rằng đó là tác giả đánh một thỏa thuận với Quỉ.
tôi đã chạy ngang qua một vài điều mà lấy đâm vào nó bằng Python:
- normaldate
- mxDateTime
- roundup 's mô-đun ngày có một số fan
Nếu bạn tìm thấy bất cứ điều gì tốt hơn tôi rất muốn nghe về nó mặc dù.
Cảm ơn các đề xuất- Xem câu trả lời của tôi, nghĩ rằng tôi đã tìm thấy câu trả lời của riêng mình với thư viện [dateutil] (http://pypi.python.org/pypi/python-dateutil/1.5). – Yarin
Sử dụng thư viện dateutil.
tôi đã được sử dụng như một dateutil lib không thể thiếu để xử lý các múi giờ
(Xem Convert UTC datetime string to local datetime và How do I convert local time to UTC in Python?)
Và Tôi vừa mới nhận ra nó đã hỗ trợ cập nhật phân tích cú pháp:
import dateutil.parser
yourdate = dateutil.parser.parse(datestring)
(Xem thêm How do I translate a ISO 8601 datetime string into a Python datetime object?)
Có thể lấy đi một hàm đơn giản nếu chỉ kiểm tra ngày tháng.
def get_date(s_date):
date_patterns = ["%d-%m-%Y", "%Y-%m-%d"]
for pattern in date_patterns:
try:
return datetime.datetime.strptime(s_date, pattern).date()
except:
pass
print "Date is not in expected format: %s" %(s_date)
sys.exit(0)
Nhanh hơn nhiều so với sử dụng dateutil đã cung cấp định dạng ngày tháng của bạn. – rbennell
- 1. Chuỗi định dạng trong python
- 2. python, định dạng chuỗi
- 3. Python chuỗi định dạng
- 4. Định dạng chuỗi trong python với định dạng biến
- 5. Chuỗi định dạng bằng Python
- 6. Cách lấy chuỗi định dạng số tốt nhất?
- 7. Định dạng số thành chuỗi trong Python
- 8. định dạng chuỗi DateTime chữ số cuối cùng của năm
- 9. làm thế nào để chuyển đổi một ngày chuỗi thành định dạng datetime trong python?
- 10. Kiểm tra định dạng chuỗi python?
- 11. python: từ điển sang chuỗi, định dạng tùy chỉnh?
- 12. Định dạng chuỗi điều kiện Python
- 13. định dạng số dài dưới dạng chuỗi trong python
- 14. Chuyển đổi chuỗi ở định dạng ddMMyyyy thành DateTime
- 15. pandas.to_datetime định dạng chuỗi thời gian không nhất quán
- 16. Chuỗi ghép nối Định dạng chuỗi VS
- 17. python: dấu chấm trong tên biến trong chuỗi định dạng
- 18. Tạo chuỗi định dạng từ ArrayList
- 19. định dạng chuỗi trong C#
- 20. Định dạng chuỗi một phần trong Python Logging Formatters
- 21. Parse DateTime trong C# từ định dạng lạ
- 22. Chuỗi con chung dài nhất từ hơn hai chuỗi - Python
- 23. Chuyển đổi một chuỗi thành một chuỗi ngày thời gian được định dạng sử dụng Python
- 24. Ký tự định dạng chuỗi Python cho __unicode__?
- 25. sử dụng python, Xóa thẻ HTML/định dạng khỏi chuỗi
- 26. Định dạng ngày SQL Server từ chuỗi
- 27. Định dạng chuỗi trong MySQL
- 28. chuỗi định dạng trong Haskell
- 29. định dạng chuỗi động với chuỗi NSStringWithFormat
- 30. Chuỗi Python getattr dưới dạng chuỗi
bản sao có thể có của [Có thư viện python nào để phân tích ngày và giờ từ ngôn ngữ tự nhiên không?] (Http://stackoverflow.com/questions/1495487/is-there-any-python-library-for -parsing-date-and-times-from-a-natural-language) –
Việc phân biệt giữa mm/dd/yyyy với dd/mm/yyyy là một vấn đề thú vị, với kết quả tai hại nếu bạn hiểu sai. –
Nó phụ thuộc vào mức độ không chính xác của bạn khi bạn nói, "không có định dạng chính xác". Bạn có thể đưa ra ví dụ về các loại đầu vào bạn muốn có thể xử lý không? Hoặc, bạn có thể có khả năng có thông tin một phần về định dạng (chẳng hạn như liệu năm có là 2 hoặc 4 chữ số hay là tháng trước ngày hoặc ngược lại)? Nếu không có ít nhất một số thông tin cơ bản, ngay cả một người không thể làm những gì bạn yêu cầu. Có phải là ngày 01/02/12 ngày 1 tháng 2 năm 2012, ngày 2 tháng 1 năm 2012, ngày 12 tháng 2 năm 2001, ngày 2 tháng 12 năm 2001 hay thứ gì đó khác? –