我要求处理20031006形式的字符串,其中包括datetime。使用C#函数,我想出了下面的函数来转换我的应用程序中的大部分日期。但是,我似乎没有将字符串20031006转换为日期的格式。请问我用什么方法来完成这个?提前致谢。
private bool IsDate(string dateString)
{
string format;
DateTime dateValue;
CultureInfo enUS = new CultureInfo("en-US");
CultureInfo provider = CultureInfo.InvariantCulture;
DateTime myNum;
try
{
if (DateTime.TryParse(dateString, out myNum))
{
return true;
}
format = "d";
if (DateTime.TryParseExact(dateString, "d",provider, DateTimeStyles.AdjustToUniversal, out dateValue))
{
return true;
}
dateValue = DateTime.ParseExact(dateString, format, new CultureInfo("fr-FR"));
if (dateValue != null)
{
return true;
}
if (DateTime.TryParseExact(dateString, "g", enUS, DateTimeStyles.None, out dateValue))
{
return true;
}
if (DateTime.TryParseExact(dateString, "M/dd/yyyy hh:mm", enUS, DateTimeStyles.None, out dateValue))
{
return true;
}
if (DateTime.TryParseExact(dateString, "g", enUS, DateTimeStyles.AllowLeadingWhite, out dateValue))
{
return true;
}
if (DateTime.TryParseExact(dateString, "o", CultureInfo.InvariantCulture, DateTimeStyles.None, out dateValue))
{
return true;
}
if (DateTime.TryParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS, DateTimeStyles.AdjustToUniversal, out dateValue))
{
return true;
}
if (DateTime.TryParseExact(dateString, "o", CultureInfo.InvariantCulture, DateTimeStyles.RoundtripKind, out dateValue))
{
return true;
}
}
catch (Exception)
{
return false;
}
return false;
}
答案 0 :(得分:4)
<强> DateTime.ParseExact
强>
string strDate = "20031006";
DateTime date = DateTime.ParseExact(strDate, "yyyyMMdd", CultureInfo.InvariantCulture);
答案 1 :(得分:1)
使用与实际日期格式匹配的custom format string:
var myDT = DateTime.ParseExact(myDate, "yyyyMMdd", CultureInfo.InvariantCulture);
答案 2 :(得分:1)
使用ParseExact
方法:MSDN reference
string stringDate = "20000102";
DateTime dateTime = DateTime.ParseExact(stringDate, "yyyyMMdd", CultureInfo.InvariantCulture);
答案 3 :(得分:1)
这是您的解决方案。
单字符串格式
using System.Globalization;
string dt = DateTime.Parse(txtDate.Text.Trim())
.ToString("yyyy/MM/dd", CultureInfo.InvariantCulture);
也可以这样做
如果您需要一个返回所需字符串的函数:
public string FormatPostingDate(string txtdate)
{
if (txtdate != null && txtdate != string.Empty)
{
DateTime postingDate = Convert.ToDateTime(txtdate);
return string.Format("{0:yyyy/MM/dd}", postingDate);
}
return string.Empty;
}