【发布时间】:2017-08-21 14:44:36
【问题描述】:
我使用这个 C# 代码将日期时间转换为字符串:
MyDatetime.ToString("dd/MM/yyyy HH:mm")
它有效,但不是每次都有效。什么意思?
如果输入日期时间是,例如,2016-10-19 17:27:41.727,我会得到预期的字符串,19/10/2016 17:27。如果日期时间(和/或月份)中的日期只有一位,我会得到一些奇怪的东西。
如果输入是2016-01-07 14:58:13.560,我得到1/7/2016,如果是2016-10-26 17:14:16.000,我得到10/6/2016。
你知道为什么吗?我怎样才能总是为只有一位数字的几天和几个月设置前导零?此外,为什么我没有看到我写的日期中的时间部分作为示例?
更新
来自 SQL Server 数据库(这是 SQL Server Management Studio)的一些日期时间字段。
【问题讨论】:
-
输入值是String类型还是DateTime类型?
-
你能给我们一个重现这个问题的最小例子吗?目前,我看不出您遇到的问题是如何描述的。
-
如果你解析这个输入,很可能你解析错了。 MyDatetime.Day 可能也会返回错误的值
-
@ChetanRanpariya 输入是我数据库中的日期时间对象
-
我在我的本地机器上运行了你的代码,它运行良好并生成了预期的输出。我使用 ADO.NET 来检索值并使用 SQLDataReader.GetDateTime 来获取 DateTime 变量中的值。您可以通过 EF 检查您为
2016-01-07 14:58:13.560获得的 DateTime 值吗?我假设MyDateTime是您示例中从数据库中检索到的实际值。
标签: c# datetime type-conversion tostring date-format