Convert.ToDatetime不添加时间戳

问题描述:

例如:Convert.ToDatetime不添加时间戳

Dim testdate As String = "29/10/2010" 
testdate = Convert.ToDateTime(testdate.ToString) 
Response.Write(testdate) 

期待 “29/10/2010 00:00:00” 我所得到的是 “29/10/2010”

最大的问题是,在其他帖子提到的,你是隐式分配操作转换为字符串变量的日期时间的结果。这甚至不会通过C#中的编译器,所以您进入了VB如何操作这些隐式赋值的领域,并且您可能不希望在那里,因为如果某个部分的语言规范在新的Framework版本中发生变化,并且您尝试迁移你的代码,你可能会有一个讨厌的bug去尝试找到(可能在这里不重要,但在其他情况下,是的)。最好的办法是重写代码块以将Convert操作分配给DateTime对象,但更简单的解决方案是在Convert.ToDateTime(testdate)行的末尾处引发.ToString()(即testdate = Convert。 DATETIME(testdate)的ToString(),它会留下testdate日期和格式化为当前区域性的时间戳(如你现在正执行日期时间和目的地之间的字符串显式转换)。

你必须将Convert.ToDateTime的结果分配给DateTime对象,而不是字符串。

Dim testdate As String = "29/10/2010" 
Dim date As DateTime = Convert.ToDateTime(testdate) 
Response.Write(date) 

这将打印出您的机器默认格式的时钟和日期。

由于明确记载here,不,这不是设计的行为。
  '05/01/1996'转换为5/1/1996 12:00:00 AM。
  '星期二2009年4月28日' 转换为2009年4月28日12:00:00 AM。

这有可能是this article可能提供的洞察力。

+0

回到上午/下午或24小时取决于你的机器的语言环境/文化,除非你在程序中指定它。所以date.ToString()的默认输出是极个别的。 – 2010-10-18 12:38:27

+0

我的网站设置为EN-GB在web.config中,但数据库服务器信息需要去的地方设置为en-US – Phil 2010-10-18 12:58:59