-2

如何检查给定日期是否有前导零?

实际上我在参数中获取日期,我需要检查日期是否包含前导零,然后我应该删除零并继续该过程。

例子。

string stringdate = Page.RouteData.Values["date"].ToString();

这里“日期”的例子可能是

2013 年 5 月 3 日(或)2013 年 5 月 3 日

如果第二种类型的字符串日期(以零开头),那么我应该删除零并使其像第一种类型并继续该过程。

我试过下面的工作

bool valid = DateTime.TryParseExact(stringdate, "dd-MMMM-yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out parsed);

但是如果“日期”值是“2013 年 12 月 16 日”,那么我最终会遇到问题,因为它返回 true。

那么如何检查“日期”是否以零开头?

4

3 回答 3

1

那么如何检查“日期”是否以零开头?

你不必。如果解析是唯一的问题,那么"dd-MMMM-yyyy"您应该使用而不是格式"d-MMMM-yyyy",因为单d对单/双数字部分都适用。使用上述格式,您可以解析033天。您可以查看自定义日期和时间格式字符串 - MSDN

编辑:

如果您只想检查日期字符串是否以0then 开头,请使用string.StartsWith方法。

if(stringdate.StartsWith("0"))
    stringdate = stringdate.Substring(1);
于 2013-04-28T11:13:20.050 回答
1

如果存在,只需在处理前删除前导零

if(stringdate[0] == '0')
    stringdate = stringdate.Substring(1);
于 2013-04-28T14:01:13.983 回答
0

如果您最终只需要获取不带前导零的字符串值,则可以使用d-MMMM-yyyy格式字符串进行解析和格式化:

string stringDate = "03-May-2013";
DateTime parsedDate;
bool isValid = DateTime.TryParseExact(
    stringDate,
    "d-MMMM-yyyy",
    CultureInfo.InvariantCulture,
    DateTimeStyles.None,
    out parsedDate);
if (isValid)
{
    stringDate = parsedDate.ToString("d-MMMM-yyyy");
}
于 2013-04-28T12:28:36.153 回答