C# 如何判断一个日期是否为长日期、短日期 yyyy-MM-dd HH:mm:ssyyyy-MM-dd HH:mmyyyy-MM-ddHH:mm:ssHH:mm输入字符串的格式有可能是上面格式的其中一种,C#如何做判断呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1.#region 判断日期 2. 3./// <summary> 4./// 判断日期的日期部分格式 5./// </summary> 6./// <param name="dateStr">输入的日期的日期部分字符串</param> 7./// <returns>bool</returns> 8.public bool isDateTime(string dateStr) 9.{ 10. bool _isDate = false; 11. 12. string matchStr = ""; 13. 14. matchStr += @"^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$ "; 15. 16. RegexOptions option = (RegexOptions.IgnoreCase | (RegexOptions.Multiline | RegexOptions.IgnorePatternWhitespace)); 17. 18. if (Regex.IsMatch(dateStr, matchStr, option)) 19. _isDate = true; 20. else 21. _isDate = false; 22. 23. return _isDate; 24. 25.} 26. 27./// <summary> 28./// 判断日期的时间部分格式 29./// </summary> 30./// <param name="time_str">输入日期的时间部分字符串</param> 31./// <returns>bool</returns> 32.public bool isDateTime_time(string time_str) 33.{ 34. bool _isDate = false; 35. 36. string matchStr = ""; 37. 38. //matchStr += @"^(\s(((0?[0-9])|([1-2][0-3]))\:([0-5]?[0-9])((\s)|(\:([0-5]?[0-9])))))?$ "; 39. 40. //matchStr += @"(20|21|22|23|[0-1]?\d):[0-5]?\d:[0-5]?\d$"; 41. 42. //matchStr += @"(0*[0-9]|[1-2][0-3]):(0*[0-9]|[1-5][0-9]):(0[0-9]|[1-5][0-9])"; 43. 44. matchStr += @"^([01]\d|2[0-3]):([0-5]\d):([0-5]\d)$"; 45. 46. RegexOptions option = (RegexOptions.IgnoreCase | (RegexOptions.Multiline | RegexOptions.IgnorePatternWhitespace)); 47. 48. if (Regex.IsMatch(time_str, matchStr, option)) 49. _isDate = true; 50. else 51. _isDate = false; 52. 53. return _isDate; 54.} 55. 56./// <summary> 57./// 判断日期的全部格式 58./// </summary> 59./// <param name="dateStr">输入日期的字符串</param> 60./// <returns></returns> 61.public bool isDate(string dateStr) 62.{ 63. bool _isDate = false; 64. 65. string matchStr = ""; 66. 67. matchStr += @"^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-)) "; 68. matchStr += @"(\s(((0?[0-9])|([1-2][0-3]))\:([0-5]?[0-9])((\s)|(\:([0-5]?[0-9])))))?$ "; 69. 70. RegexOptions option = (RegexOptions.IgnoreCase | (RegexOptions.Multiline | RegexOptions.IgnorePatternWhitespace)); 71. 72. if (Regex.IsMatch(dateStr, matchStr, option)) 73. _isDate = true; 74. else 75. _isDate = false; 76. 77. return _isDate; 78.} 79. 80.#endregion 判断日期 #region 判断日期/// <summary>/// 判断日期的日期部分格式/// </summary>/// <param name="dateStr">输入的日期的日期部分字符串</param>/// <returns>bool</returns>public bool isDateTime(string dateStr){ bool _isDate = false; string matchStr = ""; matchStr += @"^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$ "; RegexOptions option = (RegexOptions.IgnoreCase | (RegexOptions.Multiline | RegexOptions.IgnorePatternWhitespace)); if (Regex.IsMatch(dateStr, matchStr, option)) _isDate = true; else _isDate = false; return _isDate;}/// <summary>/// 判断日期的时间部分格式/// </summary>/// <param name="time_str">输入日期的时间部分字符串</param>/// <returns>bool</returns>public bool isDateTime_time(string time_str){ bool _isDate = false; string matchStr = ""; //matchStr += @"^(\s(((0?[0-9])|([1-2][0-3]))\:([0-5]?[0-9])((\s)|(\:([0-5]?[0-9])))))?$ "; //matchStr += @"(20|21|22|23|[0-1]?\d):[0-5]?\d:[0-5]?\d$"; //matchStr += @"(0*[0-9]|[1-2][0-3]):(0*[0-9]|[1-5][0-9]):(0[0-9]|[1-5][0-9])"; matchStr += @"^([01]\d|2[0-3]):([0-5]\d):([0-5]\d)$"; RegexOptions option = (RegexOptions.IgnoreCase | (RegexOptions.Multiline | RegexOptions.IgnorePatternWhitespace)); if (Regex.IsMatch(time_str, matchStr, option)) _isDate = true; else _isDate = false; return _isDate;}/// <summary>/// 判断日期的全部格式/// </summary>/// <param name="dateStr">输入日期的字符串</param>/// <returns></returns>public bool isDate(string dateStr){ bool _isDate = false; string matchStr = ""; matchStr += @"^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-)) "; matchStr += @"(\s(((0?[0-9])|([1-2][0-3]))\:([0-5]?[0-9])((\s)|(\:([0-5]?[0-9])))))?$ "; RegexOptions option = (RegexOptions.IgnoreCase | (RegexOptions.Multiline | RegexOptions.IgnorePatternWhitespace)); if (Regex.IsMatch(dateStr, matchStr, option)) _isDate = true; else _isDate = false; return _isDate;}#endregion 判断日期 我贴一个我刚才测试通过的:#region 判断日期 /// <summary> /// 判断日期的全部格式(yyyy-MM-dd HH:mm:ss) /// </summary> /// <param name="dateStr">输入日期的字符串</param> /// <returns></returns> public bool isDateTimeLong(string dateStr) { return Regex.IsMatch(dateStr, @"^(((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-)) (20|21|22|23|[0-1]?\d):[0-5]?\d:[0-5]?\d)$"); } /// <summary> /// 判断日期的全部格式(不带秒)(yyyy-MM-dd HH:mm) /// </summary> /// <param name="dateStr">输入日期的字符串</param> /// <returns></returns> public bool isDateTimeShort(string dateStr) { return Regex.IsMatch(dateStr, @"^(((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-)) (20|21|22|23|[0-1]?\d):[0-5]?\d)$"); } /// <summary> /// 判断日期的日期部分格式(yyyy-MM-dd) /// </summary> /// <param name="dateStr">输入的日期的日期部分字符串</param> /// <returns>bool</returns> public bool isDateShort(string dateStr) { return Regex.IsMatch(dateStr, @"^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-9]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$"); } /// <summary> /// 判断日期的时间部分格式,带秒(HH:mm:ss) /// </summary> /// <param name="dateStr">输入日期的时间部分字符串</param> /// <returns>bool</returns> public bool isTimeLong(string dateStr) { return Regex.IsMatch(dateStr, @"^((20|21|22|23|[0-1]?\d):[0-5]?\d:[0-5]?\d)$"); } /// <summary> /// 判断日期的时间部分格式,没有秒(HH:mm) /// </summary> /// <param name="dateStr">输入日期的时间部分字符串</param> /// <returns>bool</returns> public bool isTimeShort(string dateStr) { return Regex.IsMatch(dateStr, @"^((20|21|22|23|[0-1]?\d):[0-5]?\d)$"); } #endregion 判断日期 过滤字符串以外字符防止sql注入 CompareValidator 进行日期验证,帮忙 Microsoft 的 Velocity 项目是做啥子用的? 寻找一款在线编辑控件 有办法获得各进程占用的CPU吗? 如何返回datagrid中checkbox值到数据库 求用户登入时读取加密密码的问题! 关于GV传参 关于IIS部署网站的问题,求大神支招。 焦点简单问题! 存储过程执行错误 SqlDataSource 无法使用
1.#region 判断日期
2.
3./// <summary>
4./// 判断日期的日期部分格式
5./// </summary>
6./// <param name="dateStr">输入的日期的日期部分字符串</param>
7./// <returns>bool</returns>
8.public bool isDateTime(string dateStr)
9.{
10. bool _isDate = false;
11.
12. string matchStr = "";
13.
14. matchStr += @"^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$ ";
15.
16. RegexOptions option = (RegexOptions.IgnoreCase | (RegexOptions.Multiline | RegexOptions.IgnorePatternWhitespace));
17.
18. if (Regex.IsMatch(dateStr, matchStr, option))
19. _isDate = true;
20. else
21. _isDate = false;
22.
23. return _isDate;
24.
25.}
26.
27./// <summary>
28./// 判断日期的时间部分格式
29./// </summary>
30./// <param name="time_str">输入日期的时间部分字符串</param>
31./// <returns>bool</returns>
32.public bool isDateTime_time(string time_str)
33.{
34. bool _isDate = false;
35.
36. string matchStr = "";
37.
38. //matchStr += @"^(\s(((0?[0-9])|([1-2][0-3]))\:([0-5]?[0-9])((\s)|(\:([0-5]?[0-9])))))?$ ";
39.
40. //matchStr += @"(20|21|22|23|[0-1]?\d):[0-5]?\d:[0-5]?\d$";
41.
42. //matchStr += @"(0*[0-9]|[1-2][0-3]):(0*[0-9]|[1-5][0-9]):(0[0-9]|[1-5][0-9])";
43.
44. matchStr += @"^([01]\d|2[0-3]):([0-5]\d):([0-5]\d)$";
45.
46. RegexOptions option = (RegexOptions.IgnoreCase | (RegexOptions.Multiline | RegexOptions.IgnorePatternWhitespace));
47.
48. if (Regex.IsMatch(time_str, matchStr, option))
49. _isDate = true;
50. else
51. _isDate = false;
52.
53. return _isDate;
54.}
55.
56./// <summary>
57./// 判断日期的全部格式
58./// </summary>
59./// <param name="dateStr">输入日期的字符串</param>
60./// <returns></returns>
61.public bool isDate(string dateStr)
62.{
63. bool _isDate = false;
64.
65. string matchStr = "";
66.
67. matchStr += @"^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-)) ";
68. matchStr += @"(\s(((0?[0-9])|([1-2][0-3]))\:([0-5]?[0-9])((\s)|(\:([0-5]?[0-9])))))?$ ";
69.
70. RegexOptions option = (RegexOptions.IgnoreCase | (RegexOptions.Multiline | RegexOptions.IgnorePatternWhitespace));
71.
72. if (Regex.IsMatch(dateStr, matchStr, option))
73. _isDate = true;
74. else
75. _isDate = false;
76.
77. return _isDate;
78.}
79.
80.#endregion 判断日期
#region 判断日期/// <summary>
/// 判断日期的日期部分格式
/// </summary>
/// <param name="dateStr">输入的日期的日期部分字符串</param>
/// <returns>bool</returns>
public bool isDateTime(string dateStr)
{
bool _isDate = false; string matchStr = ""; matchStr += @"^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$ "; RegexOptions option = (RegexOptions.IgnoreCase | (RegexOptions.Multiline | RegexOptions.IgnorePatternWhitespace)); if (Regex.IsMatch(dateStr, matchStr, option))
_isDate = true;
else
_isDate = false; return _isDate;}/// <summary>
/// 判断日期的时间部分格式
/// </summary>
/// <param name="time_str">输入日期的时间部分字符串</param>
/// <returns>bool</returns>
public bool isDateTime_time(string time_str)
{
bool _isDate = false; string matchStr = ""; //matchStr += @"^(\s(((0?[0-9])|([1-2][0-3]))\:([0-5]?[0-9])((\s)|(\:([0-5]?[0-9])))))?$ "; //matchStr += @"(20|21|22|23|[0-1]?\d):[0-5]?\d:[0-5]?\d$"; //matchStr += @"(0*[0-9]|[1-2][0-3]):(0*[0-9]|[1-5][0-9]):(0[0-9]|[1-5][0-9])"; matchStr += @"^([01]\d|2[0-3]):([0-5]\d):([0-5]\d)$"; RegexOptions option = (RegexOptions.IgnoreCase | (RegexOptions.Multiline | RegexOptions.IgnorePatternWhitespace)); if (Regex.IsMatch(time_str, matchStr, option))
_isDate = true;
else
_isDate = false; return _isDate;
}/// <summary>
/// 判断日期的全部格式
/// </summary>
/// <param name="dateStr">输入日期的字符串</param>
/// <returns></returns>
public bool isDate(string dateStr)
{
bool _isDate = false; string matchStr = ""; matchStr += @"^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-)) ";
matchStr += @"(\s(((0?[0-9])|([1-2][0-3]))\:([0-5]?[0-9])((\s)|(\:([0-5]?[0-9])))))?$ "; RegexOptions option = (RegexOptions.IgnoreCase | (RegexOptions.Multiline | RegexOptions.IgnorePatternWhitespace)); if (Regex.IsMatch(dateStr, matchStr, option))
_isDate = true;
else
_isDate = false; return _isDate;
}#endregion 判断日期
/// 判断日期的全部格式(yyyy-MM-dd HH:mm:ss)
/// </summary>
/// <param name="dateStr">输入日期的字符串</param>
/// <returns></returns>
public bool isDateTimeLong(string dateStr)
{
return Regex.IsMatch(dateStr, @"^(((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-)) (20|21|22|23|[0-1]?\d):[0-5]?\d:[0-5]?\d)$"); } /// <summary>
/// 判断日期的全部格式(不带秒)(yyyy-MM-dd HH:mm)
/// </summary>
/// <param name="dateStr">输入日期的字符串</param>
/// <returns></returns>
public bool isDateTimeShort(string dateStr)
{
return Regex.IsMatch(dateStr, @"^(((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-)) (20|21|22|23|[0-1]?\d):[0-5]?\d)$");
} /// <summary>
/// 判断日期的日期部分格式(yyyy-MM-dd)
/// </summary>
/// <param name="dateStr">输入的日期的日期部分字符串</param>
/// <returns>bool</returns>
public bool isDateShort(string dateStr)
{
return Regex.IsMatch(dateStr, @"^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-9]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$"); } /// <summary>
/// 判断日期的时间部分格式,带秒(HH:mm:ss)
/// </summary>
/// <param name="dateStr">输入日期的时间部分字符串</param>
/// <returns>bool</returns>
public bool isTimeLong(string dateStr)
{
return Regex.IsMatch(dateStr, @"^((20|21|22|23|[0-1]?\d):[0-5]?\d:[0-5]?\d)$");
} /// <summary>
/// 判断日期的时间部分格式,没有秒(HH:mm)
/// </summary>
/// <param name="dateStr">输入日期的时间部分字符串</param>
/// <returns>bool</returns>
public bool isTimeShort(string dateStr)
{
return Regex.IsMatch(dateStr, @"^((20|21|22|23|[0-1]?\d):[0-5]?\d)$");
} #endregion 判断日期