【问题标题】:C# Date Conversion Issue when complete year is unknown or not specified完整年份未知或未指定时的 C# 日期转换问题
【发布时间】:2021-09-02 00:24:09
【问题描述】:

我们在数据库中仅存储 4 位数字作为出生日期字段。例如,如果出生日期是 1991 年 8 月 5 日,则将其存储为 050891

这里的问题是我们在下面做的时候:

Convert.ToDateTime("05/08/28") -> it produces 05 08 2029

Convert.ToDateTime("05/08/30") -> it produces 05 08 1930 

有人可以帮我理解为什么第一个日期年份被认为是 2029 年,而在第二种情况下,它是 1930 年而不是 2030 年。

.Net 如何确定年份?

这是演示结果的 .Net fiddle

【问题讨论】:

  • 始终以datedatetime 格式将日期存储在数据库中,而不是intvarchar,那么您就不会有这些问题

标签: c# .net datetime type-conversion


【解决方案1】:

在您的第一个 .NET 示例中,您写了 05/08/29 所以年份 2029 没问题。

使用 Calendar.TwoDigitYearMax 属性将 2 位数年份转换为 4 位数年份。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-04
    • 2021-12-26
    • 2021-04-13
    • 1970-01-01
    • 1970-01-01
    • 2020-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多