vb.net中的datetime.tostring问题

时间:2009-09-20 00:11:56

标签: vb.net datetime

我有一个startdate变量,如下所示。

Dim startDate as Datetime

startDate = Convert.ToDateTime(datepicker1.text).ToString("dd-MMM-yyyy")

在即时窗口中,如果我尝试Convert.toDate(datepicker1.text).toString(“dd-MMM-yyyy”) 它显示日期为2009年9月29日 但startDate的值是09/29/2009

我真的不明白为什么在2009年9月29日的startDate变量中未设置该值

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

您只是看到同一日期的不同表示 - 您的代码工作得很好。

您的调试窗口显示DateTime结构的字符串表示形式,方法是调用其ToString方法,不带任何参数(这是所有调试窗口如何获取任何对象的字符串表示形式),它只是显示不同。

要查看此操作 - 请在即时窗口中尝试此操作:

Convert.ToDateTime(datepicker1.text).ToString()

您将看到在观察窗口中看到的相同结果。

要记住的重要一点是DateTime是一个抽象概念,可以有许多不同的表示。同样重要的是要记住,仅仅因为您看到相同数据的不同表示,它不会改变基础类型本身。

答案 1 :(得分:0)

请改为尝试:

Dim startDate as Datetime

startDate = DateTime.Parse(datepicker1.text);

您使用的日期格式与美国使用的格式不同,因此可能需要将IFormatProvider实例作为第二个参数传递给DateTime.Parse来电。

答案 2 :(得分:0)

日期时间变量存储为自0001年1月1日午夜12点起的100纳秒周期数。当您指定2009年9月29日的值时,它将转换为单个数字。

有很多方法可以表示这个数字。 ToString(“dd-MMM-yyyy”)指定一种格式(2009年9月29日),您的系统有一些默认格式,其中一种格式是09/29/2009。

请记住,如果您使用日期的默认系统格式,不同的用户可能会看到不同的日期格式,具体取决于他们的位置和配置。