首页 > 解决方案 > 如何将“MM/dd/yy”字符串转换为最近一年的日期?

问题描述

我将日期作为字符串输入,格式为MM/dd/yy.

我正在尝试将其转换为DateTimeOffset以下方式:

string dateString = "02/11/48";

DateTimeOffset.TryParseExact(
    dateString,
    "MM/dd/yy",
    CultureInfo.InvariantCulture,
    DateTimeStyles.None,
    out DateTimeOffset date);

但是,当此字符串转换为DateTimeOffset时,年份设置为 1948。由于业务逻辑,我知道那里的日期总是有最近的未来年份,所以年份应该是 2048。

有没有办法以DateTimeOffset这种方式将字符串转换为,或者在解析后我是否必须在其上添加额外的逻辑?

标签: c#.net-5datetimeoffset

解决方案


您可以使用这种更简单的方法:

string dateString = "02/11/48";

DateTimeOffset.TryParseExact(
    dateString,
    "MM/dd/yy",
    CultureInfo.InvariantCulture,
    DateTimeStyles.None,
    out DateTimeOffset date);

if (date < DateTimeOffset.UtcNow)
{
    date = date.AddYears(100);
}

如果解析的值在现在之前,它只会增加 100 年。


推荐阅读