Tôi có một số chuỗi xxh: định dạng yym trong đó xx là giờ và yy là phút giống như "05h: 30m". Một cách thanh lịch để chuyển đổi một chuỗi kiểu này thành TimeSpan là gì?Chuỗi phân tích cú pháp thành TimeSpan
Trả lời
Điều này dường như làm việc, mặc dù nó là một chút hackish:
TimeSpan span;
if (TimeSpan.TryParse("05h:30m".Replace("m","").Replace("h",""), out span))
MessageBox.Show(span.ToString());
Are TimeSpan.Parse và TimeSpan.TryParse không lựa chọn? Nếu bạn không sử dụng định dạng "được phê duyệt", bạn sẽ cần thực hiện phân tích cú pháp theo cách thủ công. Tôi có lẽ sẽ nắm bắt hai giá trị số nguyên của bạn trong một biểu thức chính quy, và sau đó cố gắng phân tích chúng thành số nguyên, từ đó bạn có thể tạo một TimeSpan mới với hàm tạo của nó.
DateTime.ParseExact
hoặc DateTime.TryParseExact
cho phép bạn chỉ định định dạng chính xác của đầu vào. Sau khi bạn nhận được DateTime
, bạn có thể lấy số DateTime.TimeOfDay
là TimeSpan
.
Trong trường hợp không có TimeSpan.TryParseExact
, tôi nghĩ rằng một giải pháp 'thanh lịch' đã hết.
@buyutec Như bạn nghi ngờ, phương pháp này sẽ không hoạt động nếu khoảng thời gian kéo dài hơn 24 giờ.
[TimeSpan.TryParseExact] (http://msdn.microsoft.com/ en-us/library/system.timespan.tryparseexact% 28v = vs.100% 29.aspx) đã được thêm vào trong .NET 4.0. –
Here'e một khả năng:
TimeSpan.Parse(s.Remove(2, 1).Remove(5, 1));
Và nếu bạn muốn làm cho nó thêm thanh lịch trong mã của bạn, sử dụng một phương pháp khuyến nông:
public static TimeSpan ToTimeSpan(this string s)
{
TimeSpan t = TimeSpan.Parse(s.Remove(2, 1).Remove(5, 1));
return t;
}
Sau đó, bạn có thể làm
"05h:30m".ToTimeSpan();
Còn về 'TimeSpan.TryParse (" hh'h: 'mm'm' ", out span) '? https://stackoverflow.com/a/26769/206730 – Kiquenet
Từ một chủ đề khác:
- 1. Chuỗi phân tích cú pháp thành Double.NaN
- 2. Làm thế nào để phân tích cú pháp chuỗi với giờ lớn hơn 24 đến TimeSpan?
- 3. Kết hợp phân tích cú pháp phân tích cú pháp, phân tích cú pháp và phân tích cú pháp rừng
- 4. chuỗi phân tích cú pháp jquery
- 5. Chuỗi phân tích cú pháp thành một cấu trúc cây?
- 6. cách phân tích chuỗi thành cây cú pháp bằng GADT
- 7. Phân tích cú pháp chuỗi JSON bị hình thành
- 8. C# chuỗi phân tích cú pháp "0" thành số nguyên
- 9. Phân tích cú pháp thành Nullable Enum
- 10. Chuỗi định dạng phân tích cú pháp
- 11. php chuỗi phân tích cú pháp xml
- 12. JSONKit phân tích cú pháp chuỗi json
- 13. Phân tích cú pháp Ruby: phân tích cú pháp nhiều dòng
- 14. Cách phân tích cú pháp JSON (AS3)
- 15. Scala: Làm phẳng phân tích cú pháp (~) từ trình kết hợp bộ phân tích cú pháp thành Danh sách?
- 16. Phân tích cú pháp cấu trúc lại thành HTML
- 17. C++ phân tích cú pháp int từ chuỗi
- 18. Phân tích cú pháp một tuple khỏi chuỗi?
- 19. Chọn phân tích cú pháp int, nếu chuỗi được phân tách thành int
- 20. Ocaml chuỗi phân tích cú pháp để làm cho cây
- 21. Phân tích cú pháp mà không cần tách chuỗi
- 22. Phân tích cú pháp một mảng JSON thành một NSDictionary
- 23. Phân tích cú pháp một chuỗi XML trong MySQL
- 24. Cách phân tích cú pháp chuỗi json trong Android?
- 25. Thời gian Joda - Chuỗi phân tích cú pháp ném java.lang.IllegalArgumentException
- 26. Chuỗi thời gian phân tích cú pháp trong Python
- 27. chuỗi Progress phân tích cú pháp trong C
- 28. Chuỗi JavaScript phân tích cú pháp trong Java
- 29. phân tích cú pháp chuỗi truy vấn cgicc
- 30. UIWebView đang tải chuỗi html được phân tích cú pháp
tôi sẽ đề nghị sử dụng có lẽ 'TimeSpan.TryParse ("hh'h: 'mm'm'", ra khoảng) 'kiếm một giải pháp sạch hơn và mạnh mẽ hơn – mike
Trừ khi chuỗi là 25 h: 30m –
lưu ý: giải pháp này được giới hạn ở 23h: 59m – fubo