日期格式正确 yyyy/dd/mm 但显示不同 dd/mm/yyyy

date format is correct yyyy/dd/mm but its being displayed different dd/mm/yyyy

这让我很困惑,我需要将我的日期格式设置为 yyyy/mm/dd 这种情况,当我注册新用户时它会显示错误并且只接受该格式但是一旦我保存了他们的信息,日期在文本和网格视图中均显示为 dd/mm/yyyy。

知道问题出在哪里吗?

检查我的客户验证器(它完全正常工作;问题很奇怪)

   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 在 UI 中显示之前先转换您的日期。您可以通过在将它们分配给 UI 控件时执行 ToString("yyyy\/MM\/dd") 或通过使用支持数据绑定的控件正确设置某种 "Format property" 来实现。

PS: mm is for "minute". 您想在格式字符串中使用 MM