Tôi đang sử dụng DateTime trong C# để hiển thị thời gian. Phần nào mọi người sử dụng khi xây dựng thời gian?C# DateTime: "Ngày" sử dụng khi nào tôi chỉ sử dụng "thời gian"?
ví dụ: nội dung sau không hợp lệ:
//4:37:58 PM
DateTime time = new DateTime(0, 0, 0, 16, 47, 58);
vì không có tháng thứ 0 hoặc ngày thứ 0.
Tôi có sử dụng ngày không của COM không?
//4:37:58 PM
DateTime time = new DateTime(1899, 12, 30, 16, 47, 58);
Hoặc có thể là SQL Server?
//4:37:58 PM
DateTime time = new DateTime(1900, 1, 1, 16, 47, 58);
tôi nhận ra đó là tùy ý, kể từ khi tôi sẽ bỏ qua các phần cập nhật trong mã, nhưng nó vẫn sẽ được tốt đẹp để có thể sử dụng:
DateTime duration = time2 - time1;
trả lời
tôi nghĩ tôi thích MinValue
DateTime time = DateTime.MinValue.Date.Add(new TimeSpan(16, 47, 58));
Lưu ý: tôi không thể sử dụng một TimeSpan, vì không lưu trữ thời gian trong ngày. Và lý do tôi biết đó là bởi vì không có cách nào để hiển thị nội dung của nó như là một thời gian.
Điều cần nói là TimeSpan
ghi lại khoảng thời gian khoảng thời gian, không phải là thời gian trong ngày. ví dụ.
TimeSpan t = new TimeSpan(16, 47, 58);
t.ToString();
trả về một khoảng thời gian trong định dạng giờ: phút: giây, ví dụ:
16:47:58
chứ không phải là một thời điểm:
4:47:58 PM (United States)
04:47:58 nm (South Africa)
4:47:58.MD (Albania)
16:47:58 (Algeria)
04:47:58 م (Bahrain)
PM 4:47:58 (Singapore)
下午 04:47:58 (Taiwan)
04:47:58 PM (Belize)
4:47:58 p.m. (New Zealand)
4:47:58 μμ (Greece)
16.47.58 (Italy)
오후 4:47:58 (Korea)
04:47:58 ب.ظ (Iran)
ਸ਼ਾਮ 04:47:58 (India)
04:47:58 p.m. (Argentina)
etc
Trong khác các từ, có sự khác biệt giữa một khoảng thời gian và một thời gian. Và cũng nhận ra rằng TimeSpan không cung cấp một cơ chế để chuyển đổi một khoảng thời gian vào một thời điểm trong ngày - và có một lý do cho điều đó.
Bạn nói rằng TimeSpan không lưu trữ thời gian trong ngày, nhưng cấu trúc DateTime có thuộc tính được gọi là TimeOfDay và loại là một TimeSpan. –
Vui lòng xem xét chỉnh sửa câu trả lời từ câu hỏi. –