【发布时间】:2011-04-26 21:53:48
【问题描述】:
例如:
Dim testdate As String = "29/10/2010"
testdate = Convert.ToDateTime(testdate.ToString)
Response.Write(testdate)
期待“29/10/2010 00:00:00”我得到的是“29/10/2010”
【问题讨论】:
标签: 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”
【问题讨论】:
标签: asp.net string datetime date
您必须将 Convert.ToDateTime 的结果分配给 DateTime 对象,而不是字符串。
Dim testdate As String = "29/10/2010"
Dim date As DateTime = Convert.ToDateTime(testdate)
Response.Write(date)
这将以您机器的默认格式打印时钟和日期。
【讨论】:
最大的问题是,正如其他帖子中所提到的,您正在将 Convert 操作的 DateTime 结果隐式分配给字符串变量。这甚至不会通过 C# 中的编译器,因此您进入了 VB 如何对这些隐式赋值进行操作的领域,您可能不想在那里,因为如果语言规范的某些部分在新的框架版本中发生更改并且您尝试迁移您的代码,您可能会尝试找到一个令人讨厌的错误(在这里可能不那么重要,但在其他情况下,是的)。最好的做法是重写代码块以将 Convert 操作分配给 DateTime 对象,但更简单的解决方案是在 Convert.ToDateTime(testdate) 行的末尾抛出一个 .ToString() (即 testdate = Convert.ToString())。 DateTime(testdate).ToString() 这将使 testdate 的日期和时间戳格式化为当前文化(因为您现在正在执行 DateTime 和目标字符串之间的显式转换)。
【讨论】:
正如明确记录的here,不,这不是设计的行为。
'05/01/1996' 转换为 5/1/1996 12:00:00 AM。
'Tue Apr 28, 2009' 转换为 4/28/2009 12:00:00 AM。
this article 可能会提供见解。
【讨论】: