c# - 如何将“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
这种方式将字符串转换为,或者在解析后我是否必须在其上添加额外的逻辑?
解决方案
您可以使用这种更简单的方法:
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 年。
推荐阅读
- docker - 将文件上传到在 Docker 容器上运行的 eXist-db
- python - 无法访问 jarfile XYZ.jar
- php - 如果有东西引用它,如何防止用户从数据库中删除一行
- c# - 如何通过 EF6 将 SQLQuery 转换为 SortedList
- java - 表情符号被替换为“?” 解析whatsapp聊天文本文件时。如何将它们解析为正常的 UTF-8 或 UTF-16 编码?
- java - Java 8 CustomizedThread::new 等于 new CustomizedThread()?
- django - 将 Spotfire 嵌入 Django
- c# - 如何使用 Linq 生成树视图
- hazelcast - Hazelcast:IMap 作为单例以及如何配置 TTL
- java - 我可以运行以字符串形式存储在 Json 对象中的 Java 代码吗?