我在C#中使用DateTime
来显示时间。在构建时间时,每个人都使用什么日期部分?
例如,以下内容无效,因为没有第0个月或第0天:
// 4:37:58 PM
DateTime time = new DateTime(0, 0, 0, 16, 47, 58);
我是否使用COM的零日期?
// 4:37:58 PM
DateTime time = new DateTime(1899, 12, 30, 16, 47, 58);
或者是SQL Server的?
//4:37:58 PM
DateTime time = new DateTime(1900, 1, 1, 16, 47, 58);
我意识到这是任意的,因为我将忽略代码中的日期部分,但它仍然可以使用:
DateTime duration = time2 - time1;
回答
我想我喜欢MinValue
DateTime time = DateTime.MinValue.Date.Add(new TimeSpan(16, 47, 58));
注意:我不能使用TimeSpan
,因为它不存储一天中的时间。我之所以知道这一点,是因为没有办法将其内容显示为一段时间。
也就是说,TimeSpan
记录的是一段时间,而不是一天中的某个时间,例如:
TimeSpan t = new TimeSpan(16, 47, 58);
t.ToString();
返回一段时间,格式为hoursminutesseconds,例如:
16:47:58
而不是一个时间:
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
换句话说,timespan和time是有区别的。还要认识到,TimeSpan
没有提供将一段时间转换为一天中的某个时间的机制--这是有原因的。
https://stackoverflow.com/questions/372601
复制相似问题