【问题标题】:Cannot convert 'string' to 'System.DateTime' C# WPF无法将“字符串”转换为“System.DateTime”C#WPF
【发布时间】:2020-12-04 15:38:06
【问题描述】:

首先,我想说我阅读了很多关于类似问题的问题,但我找不到任何东西。 不同的是我不能使用DateTime.Now属性,也不能选择any specific date

用户可以选择一个日期 DatePicker

我尝试过 Convert、Parse、tryParse,但仍然无法解决... 如果我在课堂上使用String 而不是DateTime,这段代码可以正常工作,但我需要使用DateTime 类型。另外,我不想显示时间,这就是我这样格式化的原因。我可以获取字符串的值,以便稍后解析它吗?

string chosenDate = datePicker.SelectedDate.GetValueOrDefault().ToString("dd/MM/yyyy"); //error

在那之后,我想将价值转移到我的对象上。这就是我所做的:

newObject = new Classes.MyClass(DateTime.Parse(chosenDate));

我已经失去了所有的想法...... 提前谢谢你。

编辑:

抱歉,关于问题的信息太少。

问题是我有一个 DataGrid,它绑定了 DateTime 日期(在 .cs 中)。我尝试这种方式是因为它不会显示时间,但如果我应用以下内容,它会在我的结果中显示时间,如您所见。

【问题讨论】:

  • 为什么不直接使用datePicker.SelectedDate?喜欢newObject = new Classes.MyClass(datePicker.SelectedDate.GetValueOrDefault());
  • @mm8 如果我这样做,我会遇到同样的问题
  • 您在哪里以及为什么要尝试将 DateTime 转换为字符串?
  • 详细说明@mm8 的意思...datePicker.SelectedDate 返回一个可为空的DateTimeGetValueOrDefault 将其转换为 DateTime。为什么要麻烦将其转换为字符串,然后立即将其解析回 DateTime。跳过字符串部分。如果您想将其作为字符串保存,请执行此操作,但将 DateTime 保留为 DateTime
  • @Flydog57 我可以不显示时间吗?这就是我尝试这种方式的原因。

标签: c# wpf datetime


【解决方案1】:

如果MyClass 需要DateTime,则应使用DatePickerSelectedDate 属性中的值。它返回一个Nullable<DateTime>,可以使用GetValueOrDefault() 方法将其转换为DateTime

newObject = new Classes.MyClass(datePicker.SelectedDate.GetValueOrDefault());

如果没有选择日期,GetValueOrDefault() 将返回 DateTime.MinValue

DatePicker 不会以任何特定格式存储日期。这是格式化的事情。

它也没有设置时间。但是,如果您自己设置时间,则可以使用 Date 时间的 Date 属性将其删除:

datePicker.SelectedDate.GetValueOrDefault().Date

【讨论】:

  • 这里可以加一些时间限制吗?我的意思是只显示日期?
  • 使用datePicker.SelectedDate.Date 获取日期。它会在 DateTime 所代表的日期的早晨为您提供午夜的 DateTime(即时间 00:00:00)。
  • DatePicker 如何显示时间?它存储了一个DateTime 对象,但它从不设置时间。
  • @mm8 我在课堂上有绑定了我的 DateTime 日期的 dataGrid。当我连接所有这些时,我得到了它的时间。 DataPicker 不显示,但 DataGrid 显示。
  • 那么你应该格式化DataGrid中的值,这是一个完全不同的主题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-28
  • 2023-03-15
  • 1970-01-01
  • 2015-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多