这个问题的扩展,我从数据库中提取日期并将其显示在网格中.
我有以下代码:
string date = "";
DateTime? dateSent;
if (row["DateSent"] != DBNull.Value)
dateSent = (DateTime)row["DateSent"];
else dateSent = null;
date = (dateSent.HasValue ? dateSent.Value.ToString("dd/MM/yyyy hh:mm:ss") : null);
Run Code Online (Sandbox Code Playgroud)
当我在这段代码的末尾添加一个断点时,我可以看到DateTime?
变量"dateSent"有一个24小时的时钟时间戳,例如14:50:34.但是,当我检查string
变量"date" 的值时- 它有一个12小时的时钟格式,例如02:50:34.
我不打算转换成12小时时钟格式.我有两个问题:
Jon*_*eet 38
为什么dateSent.Value.ToString("dd/MM/yyyy hh:mm:ss")返回12小时时钟戳?
因为你要求它.这hh
意味着什么.HH
是24小时.
如有疑问,请阅读有关自定义日期和时间格式字符串的文档.
hh
记录为
小时,从01到12使用12小时制."
HH
记录为:
小时,使用00至23的24小时制.
作为进一步说明,此评论表明潜在的概念错误:
我可以看到DateTime?变量"dateSent"具有24小时制时钟,例如14:50:34
一个DateTime
值不具有的格式.这只是一个日期和时间.就像int
16的值是"0x10"和"16"一样,取决于你如何格式化,同样的情况也是如此DateTime
.没有与该值相关的格式 - 仅调用的结果ToString()
将取决于文化设置.
Jus*_*ony 11
它应该像大写你的h一样简单
HH:mm:ss
Run Code Online (Sandbox Code Playgroud)
来自文章:
DateTime dt = new DateTime(2008, 3, 9, 16, 5, 7, 123);
Run Code Online (Sandbox Code Playgroud)
请注意,小时是16
String.Format("{0:h hh H HH}", dt); // "4 04 16 16" hour 12/24
Run Code Online (Sandbox Code Playgroud)
使用大写字母表示小时:
HH:mm:ss
^^
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
37789 次 |
最近记录: |