5St*_*yan 6 c# string time datetime parsing
我有一个字符串变量存储可能是完整日期或部分日期:
1)完整日期:12/12/2010 12:33 AM
2)部分日期:上午12:33(仅限日期字段)
我正在试图找出解析字符串的最佳方法,以确定字符串是否缺少日期字符串.原因是,在我的代码中如果缺少日期,我将在字符串中附加一个默认日期(例如1/1/1900).请记住,时间可能是各种格式.
更新 - 我对这个问题的具体答案.
正如所有"帖子"所述,这个问题有多个答案,这最终是我用过的,希望它可以帮助其他人*:
public DateTime ProcessDateAndTime(string dateString)
{
string dateAndTimeString = dateString;
string[] timeFormats = new string[]
{
"hh:mm tt", "hh:mm:ss tt",
"h:mm tt", "h:mm:ss tt",
"HH:mm:ss", "HH:mm", "H:mm"
};
// check to see if the date string has a time only
DateTime dateTimeTemp;
if (DateTime.TryParseExact(dateString, timeFormats,
CultureInfo.InvariantCulture.DateTimeFormat, DateTimeStyles.None, out dateTimeTemp))
{
// setting date to 01/01/1900
dateAndTimeString = new DateTime(1900, 1, 1).ToShortDateString() + " " + dateString;
}
return DateTime.Parse(dateAndTimeString);
}
Run Code Online (Sandbox Code Playgroud)
*注意:此方法基于以下假设:您的应用程序中只使用了特定数量的时间格式,并且保证正确格式化日期和时间,或仅传入时间字符串(预先验证以便删除)垃圾文本).
使用
Convert.ToDateTime(string value, IFormatProviderProvider provider)
由于字符串有不同的风格,因此根据需要提供不同的格式提供程序.
订单可能是:
如果失败,转换将抛出格式异常.如果您不希望有异常,请使用,Datetime.TryParse因为它返回一个布尔值.
根据字符串的表示方式,您可以拥有3个以上的格式提供程序.
| 归档时间: |
|
| 查看次数: |
4415 次 |
| 最近记录: |