首页 > 解决方案 > 将值设置为属性 c# datetime 错误格式

问题描述

当您在类的属性中选择数据值时,会生成以下错误“输入字符串格式不正确”。

我正在转换图像中的日期,它生成正确,但是在分配时会生成错误。

我将它转换为 DateTime 并将其创建为新的,但仍然发生错误。

使用 Scheduled = sd 时也会发生同样的情况,

我正在使用 asp.net 核心

在此处输入图像描述

标签: c#asp.netdatetimeasp.net-coredatetime-format

解决方案


1. Convert.ToDateTime 困扰着我,虽然没有抛出这个异常。

首先,您不应该在日期时间对象上调用 Convert.ToDateTime。它不会抛出异常,但也不会进行任何转换。

请参阅此处的MSDN 文档

2. 异常有明确的细节,将字符串转换为数字失败

堆栈跟踪显示“System.Number.StringToNumber”转换失败。

所以它是字符串的其他 3 个属性之一,您正在尝试将它们转换为 Int64 或 long。

如果您在调试模式下运行解决方案,您将通过行号知道哪个属性。

3. 如果您的值是整数字符串(例如 "10" ),即使它不起作用,那么机器的文化设置存在问题。

请在此处参考完整的线程

这是说,有时您的转换从“10”到整数值 10 失败,因为某些注册表设置设置不正确。您可以通过以下方式更正它们:

虽然可以直接编辑问题键的值,但首选方法是将区域设置更改为不同的区域/语言,然后将其重置为所需的设置:

  1. 从控制面板打开区域和语言选项小程序。
  2. 注意当前格式。
  3. 将当前格式更改为英语(澳大利亚)
  4. 单击应用。
  5. 将当前格式更改为注明的格式,例如英语(美国)。
  6. 单击应用,然后单击确定。

这应该可以解决您的问题。


推荐阅读