如何检查给定日期是否有前导零?
实际上我在参数中获取日期,我需要检查日期是否包含前导零,然后我应该删除零并继续进行。
实施例
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开头?
答案 0 :(得分:1)
那么如何检查'Date'是否以Zero开头?
你不必。如果解析是唯一的问题,那么您应该使用"dd-MMMM-yyyy"
而不是格式"d-MMMM-yyyy"
,因为单d
将适用于单/双位数日部分。使用上述格式,您可以解析03
或3
天。您可以查看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");
}