如何检查日期是否为零?

时间:2013-04-28 11:12:19

标签: c# asp.net datetime

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

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

实施例

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

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

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

如果第二个类型的stringdate(从零开始)那么我应该删除零并使其像第一个类型一样继续进行。

我在下面尝试了

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

但是如果'date'值是'16-December-2013'那么我最终会出现问题,因为它返回true。

那么如何检查'Date'是否以Zero开头?

3 个答案:

答案 0 :(得分:1)

  

那么如何检查'Date'是否以Zero开头?

你不必。如果解析是唯一的问题,那么您应该使用"dd-MMMM-yyyy"而不是格式"d-MMMM-yyyy",因为单d将适用于单/双位数日部分。使用上述格式,您可以解析033天。您可以查看Custom Date and Time format string- MSDN

修改

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

if(stringdate.StartsWith("0"))
    stringdate = stringdate.Substring(1);

答案 1 :(得分:1)

在处理之前删除前导零(如果存在)

if(stringdate[0] == '0')
    stringdate = stringdate.Substring(1);

答案 2 :(得分: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");
}