c# - 解析时使 DateTime 的天前导零可选

标签 c# datetime

我正在将字符串转换为 DateTime 并让字符串像这样输入:

string dateTimeBeforeDayTen = '2/05/2016';
string dateTimeBeforeAfterTen = '12/05/2016';

现在,如果我正在解析 dateTimeBeforeAfterTen,我知道我可以使用:

DateTime myDateTime;
DateTime.TryParseExact(dateTimeBeforeAfterTen, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out myDateTime);

但是如果我想为它们中的任何一个解析我该怎么办。我知道我可以:

DateTime myDateTime;
if(!DateTime.TryParseExact(dateTimeBeforeAfterTen, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out myDateTime));
    DateTime.TryParseExact(dateTimeBeforeAfterTen, "d/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out myDateTime);

但是有更好的方法吗?我将 DateTime 格式存储在数据库中,并希望将其保留为单个字符串。

最佳答案

单个“d”将在一天和两天内有效。所以只需使用“d/MM/yyyy”。

Format string

"d"

The day of the month, from 1 through 31.

2009-06-01T13:45:30 -> 1

2009-06-15T13:45:30 -> 15

这个有效:

string dateTimeBeforeDayTen = "2/05/2016";
string dateTimeBeforeAfterTen = "12/05/2016";

DateTime myDateTime, myDateTime2;

DateTime.TryParseExact(dateTimeBeforeDayTen, "d/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out myDateTime);
DateTime.TryParseExact(dateTimeBeforeAfterTen, "d/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out myDateTime2);

关于c# - 解析时使 DateTime 的天前导零可选,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39106490/

相关文章:

c# - IMAP 响应重复

c# - 如何获取 N 个热 Observable<decimal> 实例的 "last"项的总和?

datetime - 如何处理EDM :DateTime form OData interface in SAPUI5 correct?

mysql - 在响应/更新中找到日期之间最长和最快的差异

c# - 如何在 C/C++ 代码中使用 C# 结构体数组初始化?

c# - 单击按钮时如何从列表框和 ObservableCollection 中删除自定义项

c# - Windows Azure MessageLockLostException

date - Elasticsearch中的抽象时态搜索

javascript - 检查当前时间 (UTC) 是否在范围内

r - as.Date 如果申请或不申请则返回不同的格式