繁体   English   中英

WinForms C#日期在文本框中的更改月份和日期

[英]Winforms C# Date in TextBox changes month and day

我有一个ac#winforms应用程序,该应用程序数据绑定到具有多个日期的表。 客户要求可以通过使用文本框输入日期。 但是,我无法使其正常工作。 问题是当我离开文本框时,日期和月份会发生变化。 因此,当我键入9-12-1950时,它将显示为12-09-1950。 当我键入09-12-1950时相同。 内部日期存储为yyyy-MM-dd。 数据绑定使用dd-MM-yyyy格式启用。 我使用验证事件t0检查日期是否有效,例如:

  if (DateTime.TryParseExact(tbDate.Text, formats, CultureInfo.InvariantCulture, DateTimeStyles.None, out dateValue))
                tbDate.Text = String.Format("{0:dd-MM-yyyy}", dateValue);

调试时,我看到tbDate的文本值仍然是正确的格式,例如我的情况是9-12-1950。 我还看到从TryParseExact返回的dateValue具有相同的日期,但格式为MM / dd / yyyy。

将日期保存到数据库设置为onValidation。 我在这里想念什么?

[更新]也许我的解释不够清楚。 日期以DateTime类型(不是varchar)的yyyy-MM-dd格式存储在SQL Db中。 在我的表单上,我想将其显示和编辑为dd-MM-yyyy(还有其他一些格式,例如:“ dd / MM / yyyy”,“ dd / M / yyyy”,“ d / M / yyyy”,“ d / MM / yyyy”,“ dd / MM / yy”,“ dd / M / yy”,“ d / M / yy”,“ d / MM / yy”,“ dd-MM-yyyy”,“ dd- M-yyyy”,“ dM-yyyy”,“ d-MM-yyyy”,“ dd-MM-yy”,“ dd-M-yy”,“ dM-yy”,“ d-MM-yy”。

打字工作正常,但是一旦我离开TextBox,日期和月份就会发生变化。 我想我有点想念。 只是不知道什么。

我感到有点愚蠢,问题是由本地系统设置(设置为M / d / yyyy)引起的。 我将其更改为解决该问题的当地文化dd-MM-yyyy。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM