我使用此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)。
答案 0 :(得分:0)
当您输入日期为" XXXX-XX-XX"它假定您使用格式" YYYY-MM-DD"。
只需查看输入输出即可看到模式。 编程中的很多人(我合作)使用这种格式,因为它是自动过滤而没有任何标点符号(20170102将始终在20161231之后,等等)。
答案 1 :(得分:0)
很可能你的DateTime已经有无效值(日期和月份混合)
new DateTime(2016, 01, 07,14,58,13,56).ToString("dd/MM/yyyy HH:mm")
返回07-01-2016 14:58
。
看看你如何从数据库中读取这个DateTime值。我相信问题就在那里。 (例如SqlDataReader.GetDateTime)
答案 2 :(得分:0)
DateTime方法与计算机语言一起使用。如果您的计算机(或服务器)是英文(反之亦然)并且您通过美国非标准日期格式,则会出现这样的问题。 如果您使用的是Web应用程序,请在web.config中配置正确的语言