日期格式是正确的yyyy/dd/mm但它显示不同dd/mm/yyyy
问题描述:
这太让我困惑了,我需要我的日期格式为yyyy/mm/dd它是这种情况,当我注册新用户它会显示错误,只接受该格式,但是一旦我保存他们的信息,日期显示为dd/mm/yyyy文本和网格视图。日期格式是正确的yyyy/dd/mm但它显示不同dd/mm/yyyy
任何想法是什么问题?
检查我custome验证器(它完全工作;问题是奇数)
Dim testing As Date
If Date.TryParseExact(txtentrydate.Text.ToString(), "yyyy/mm/dd",
System.Globalization.CultureInfo.CurrentCulture,
Globalization.DateTimeStyles.None, testing) Then
args.IsValid = True
Else
args.IsValid = False
End If
End Sub
答
Date
类型的变量不具有格式。日期就是这样 - 一个时间点。
只有当Date
变量是转换为字符串时,才分配格式。所以,如果你说
... the date is shown as dd/mm/yyyy both on text and grid view.
那么你的代码将日期转换为其文本表示是错误的。你没有显示该代码,因此我们只能猜测。我的猜测是你依靠隐式转换,它将使用你当前的区域设置。
解决方案很简单:Explicity在将它们显示在用户界面之前先转换您的日期。您可以通过执行ToString("yyyy\/MM\/dd")
将它们分配给您的UI控件时执行此操作,或通过使用支持数据绑定的控件正确设置某种“格式属性”来执行此操作。
PS:mm
is for "minute".您想在您的格式字符串中使用MM
。
我认为月份应该是'MM',''yyyy/MM/dd'' – Fabio
由于日期可能保存了一个Date,所以一旦它获得了值,单元格就会将其格式化,使用输入字符串。在单元的'DefaultCellStyle'属性中,调整'格式'属性 – litelite
日期没有格式 - 它们只是一个数字 - 所以你不能“设置”格式。格式就是我们向用户显示它们的方式。您的代码正在测试字符串的格式而不是日期。 – Plutonix