C#将字符串转换为datetime而没有时间

时间:2014-10-05 22:34:30

标签: c# sql datetime format converter

似乎我不想要的东西(至少根据我读过的一些文章)。但只是仔细检查一下。我正在从我的数据库中读取DateTime。在数据库中,它被写成" 01.01.2011"但是当我用SQL读取它并将其存储在string时,它说" 01.01.2011 00:00:00"。 然后我想好了,我只会缩短string的时间。但有诀窍,似乎这是不可能的。即使我切断了#00; 00:00:00"部分来自string(它只是说" 01.01.2011"),并将其转换为DateTime," 00:00:00"仍然在显示。 我是C#的新手,但看起来这个部分在Java中解决得更好,你可以定义你想要的日期和它的显示方式(没有你不想要的时间)。 所以只是为了说清楚,是否真的不可能实现我想要的(我必须在我的表示层中处理正确的格式)或者我是否找不到正确的信息?

由于

3 个答案:

答案 0 :(得分:1)

.Net中的

DateTime 总是一个日期和时间。如果你愿意,你可以忽略时间部分,但它仍然存在。在内部,DateTime跟踪自1/1/0001以来的整数滴答。 (一毫秒内有10,000个刻度)。因此,DateTime 不可能有时间组件。

对于仅限日期的数据,通常的惯例是使用时间设置为午夜(00:00:00)的日期。您可以使用DateTime属性从任何.Date获取其中一个。

你要小心,一旦你忽略了时间,你总是忽略时间。否则,在处理巴西等地的夏令时问题时可能会遇到问题 - 时间从晚上11:59:59过渡到凌晨1:00:00。如果您不小心处理数据的方式,那么在午夜DateTime填充的仅限日期的数据可能被误解为当地时间并非实际存在。

.NET Framework中没有时间的真实日期没有内置类型。但是,您可以在LocalDate库的Noda Time结构中找到它。如果你有很多基于日期的业务逻辑,你可以考虑使用它。

答案 1 :(得分:0)

myDatTime.ToString("MMM dd, yyyy");可以解决问题

答案 2 :(得分:0)

如果我理解你......这可能有所帮助。
in c#:
if(!string.IsNullOrEmpty(yourDateTime)) { yourDateTime.ToString("dd/MM/yyyy"); }
在sql-server中:

select convert(varchar, yourDateTime ,102) as [yourDateTime]