Convert.ToDatetime不添加时间戳

时间:2010-10-18 12:03:30

标签: asp.net string datetime date

例如:

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

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

3 个答案:

答案 0 :(得分:3)

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

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

这将打印时钟以及机器默认格式的日期。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

this article可能会提供见解。