似乎我不想要的东西(至少根据我读过的一些文章)。但只是仔细检查一下。我正在从我的数据库中读取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中解决得更好,你可以定义你想要的日期和它的显示方式(没有你不想要的时间)。
所以只是为了说清楚,是否真的不可能实现我想要的(我必须在我的表示层中处理正确的格式)或者我是否找不到正确的信息?
由于
答案 0 :(得分:1)
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]