首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >C# DateTime:当我只使用“时间”时,应该使用什么“日期”?

C# DateTime:当我只使用“时间”时,应该使用什么“日期”?
EN

Stack Overflow用户
提问于 2008-12-16 20:35:56
回答 12查看 22.6K关注 0票数 31

我在C#中使用DateTime来显示时间。在构建时间时,每个人都使用什么日期部分?

例如,以下内容无效,因为没有第0个月或第0天:

代码语言:javascript
复制
// 4:37:58 PM
DateTime time = new DateTime(0, 0, 0, 16, 47, 58);

我是否使用COM的零日期?

代码语言:javascript
复制
// 4:37:58 PM
DateTime time = new DateTime(1899, 12, 30, 16, 47, 58);

或者是SQL Server的?

代码语言:javascript
复制
//4:37:58 PM
DateTime time = new DateTime(1900, 1, 1, 16, 47, 58);

我意识到这是任意的,因为我将忽略代码中的日期部分,但它仍然可以使用:

代码语言:javascript
复制
DateTime duration = time2 - time1;

回答

我想我喜欢MinValue

代码语言:javascript
复制
 DateTime time = DateTime.MinValue.Date.Add(new TimeSpan(16, 47, 58));

注意:我不能使用TimeSpan,因为它不存储一天中的时间。我之所以知道这一点,是因为没有办法将其内容显示为一段时间。

也就是说,TimeSpan记录的是一段时间,而不是一天中的某个时间,例如:

代码语言:javascript
复制
TimeSpan t = new TimeSpan(16, 47, 58);
t.ToString();

返回一段时间,格式为hoursminutesseconds,例如:

代码语言:javascript
复制
16:47:58

而不是一个时间:

代码语言:javascript
复制
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没有提供将一段时间转换为一天中的某个时间的机制--这是有原因的。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/372601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档