我正在尝试将日期从MM / dd / yyyy更改为dd / MM / yyyy,这是我目前所拥有的:
Dim d As String = value.ToString("MM/dd/yyyy HH:mm:ss tt")
Dim formatedDate As Date = Date.Parse(d, CultureInfo.CurrentCulture)
_ArticleCreated = formatedDate
OnPropertyChanged("ArticleCreated")
这在某种程度上有效,但它适用于具有第1-12天的日期。似乎仍然认为格式仍然是MM / dd / yyyy,因为当我将日期设置为26/01/2016时,这将看第一列认为它是一个月,并且错误说这不是格里高利日历。
有什么建议吗?
编辑:ParseExact给出相同的结果
答案 0 :(得分:2)
日期没有格式,它们是二进制值。只有当您想要从日期生成字符串或将字符串解析为DateTime对象时,格式才会起作用。
如果要更改日期的显示方式,请更改数据绑定的StringFormat属性,例如:
<TextBlock Text="{Binding ..., StringFormat=Date: {}{0:dd/MM/yyyy} }" />
更好的选择是确保您的应用程序使用正确的文化。通常这意味着 nothing :如果您的用户的语言环境设置为法语,则日期将使用法语格式显示。您只需指定要使用的标准日期格式,例如短日期:
<TextBlock Text="{Binding ..., StringFormat=d}" />
如果要覆盖用户的文化,可以设置Thread.CurrentUICulture等。
您还可以在绑定本身中指定显式文化:
<TextBlock Text="{Binding ..., StringFormat=d, ConverterCulture=en-GB}" />
您不会对格式进行硬编码,但 正在对文化进行硬编码。