如何将 "MM/dd/yy" 字符串转换为最接近未来年份的日期?
How to convert "MM/dd/yy" string to a date with the nearest future year?
我将日期作为字符串输入,格式为 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
,或者我是否必须在解析后在其之上添加额外的逻辑?
您可以使用这种更简单的方法:
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 年。
我将日期作为字符串输入,格式为 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
,或者我是否必须在解析后在其之上添加额外的逻辑?
您可以使用这种更简单的方法:
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 年。