Vb.net 格式化日期将删除零

Vb.net 格式化日期将删除零,vb.net,winforms,date,format,Vb.net,Winforms,Date,Format,我正在寻找一种方法,以保持零在一位数的月份和天数,但目前我这样做的方式是行不通的。我正在寻找一些关于可能发生了什么以及是否格式不正确的见解 目前,我只想将日期格式化为特定格式,以下是我的代码: dateFormat = Today.ToString("MM/dd/yyyy") 然而,这个值并不是我所期望的2013年2月13日的值,而是#2013年2月13日#删除所有前导零。这里发生了什么?为什么要给出#并删除所有前导零?您可以使用VB.NET的正确方法 您可以使用VB.NET的正确方式 将da

我正在寻找一种方法,以保持零在一位数的月份和天数,但目前我这样做的方式是行不通的。我正在寻找一些关于可能发生了什么以及是否格式不正确的见解

目前,我只想将日期格式化为特定格式,以下是我的代码:

dateFormat = Today.ToString("MM/dd/yyyy")

然而,这个值并不是我所期望的2013年2月13日的值,而是#2013年2月13日#删除所有前导零。这里发生了什么?为什么要给出#并删除所有前导零?

您可以使用VB.NET的正确方法


您可以使用VB.NET的正确方式


将dateFormat声明为字符串:

Dim dateFormat as string = DateTime.Today.ToString("MM/dd/yyyy")
至于“散列”。解释它

DateTime本身并不真正包含散列,而且 普通格式字符串也会产生哈希


将dateFormat声明为字符串:

Dim dateFormat as string = DateTime.Today.ToString("MM/dd/yyyy")
至于“散列”。解释它

DateTime本身并不真正包含散列,而且 普通格式字符串也会产生哈希


相关问题是:
dateFormat
属于什么类型?如果是
日期
(或
日期时间
),则格式化字符串将转换回
日期
,格式将丢失。只有将格式化结果指定给
字符串
,格式化才有效。
Date
类型不存储任何格式。格式通常只适用于字符串

Dim dateFormat As String
dateFormat = Today.ToString("MM/dd/yyyy")
注意:如果您有
选项Strict Off
,则VB会自动尝试转换不匹配的类型。在您的代码中,如果
dateFormat
Date
类型,则格式化字符串将自动转换为
Date
。因此,
选项严格关闭
是危险的,因为它隐藏了潜在的编程错误。我强烈建议您严格使用
选项
。您可以按源文件或在项目属性中的
Compile>选项Strict
下执行此操作

这样做时,您将丢失一些自动转换,并且必须显式指定这些转换,但这样会增加代码的安全性

您甚至可以在菜单
Tools>Options
中将此选项设置为新项目的默认选项,然后导航到
projects and Solutions>VB Defaults
。(至少与2008年相比)。我一直有:

Option Explicit On Option Strict On Option Compare Binary Option Infer On 选项显式打开 选项严格限制在 选项比较二进制 选项推断
相关问题是:
dateFormat
属于什么类型?如果是
日期
(或
日期时间
),则格式化字符串将转换回
日期
,格式将丢失。只有将格式化结果指定给
字符串
,格式化才有效。
Date
类型不存储任何格式。格式通常只适用于字符串

Dim dateFormat As String
dateFormat = Today.ToString("MM/dd/yyyy")
注意:如果您有
选项Strict Off
,则VB会自动尝试转换不匹配的类型。在您的代码中,如果
dateFormat
Date
类型,则格式化字符串将自动转换为
Date
。因此,
选项严格关闭
是危险的,因为它隐藏了潜在的编程错误。我强烈建议您严格使用
选项
。您可以按源文件或在项目属性中的
Compile>选项Strict
下执行此操作

这样做时,您将丢失一些自动转换,并且必须显式指定这些转换,但这样会增加代码的安全性

您甚至可以在菜单
Tools>Options
中将此选项设置为新项目的默认选项,然后导航到
projects and Solutions>VB Defaults
。(至少与2008年相比)。我一直有:

Option Explicit On Option Strict On Option Compare Binary Option Infer On 选项显式打开 选项严格限制在 选项比较二进制 选项推断
请显示所涉及的其余代码这是用于格式化日期的全部代码。除了将变量Dim dateFormat声明为DATETIME之外,还必须在其他地方出现错误。格式
MM
dd
总是产生一个两位数!请显示所涉及的其余代码这是用于格式化日期的全部代码。除了将变量Dim dateFormat声明为DATETIME之外,还必须在其他地方出现错误。格式
MM
dd
总是产生一个两位数!这是“老派作风”而不是“正派作风”;-)但适合解决方案,有时比新的更具可读性
:D
这是“老派方式”而不是“正确方式”;-)但适合该解决方案,有时比新的更具可读性
:D