[英]How to convert String to date
I have a requirement to treat strings of the form 20031006, among others as datetime. 我需要将格式为20031006的字符串视为datetime。 Using the C# functions, I came up with the function below for converting most all of my dates in my application.
使用C#函数,我想到了下面的函数,用于转换应用程序中的大多数日期。 However, I don't seem to have the format for converting the string 20031006 to date.
但是,我似乎没有将字符串20031006转换为日期的格式。 What methods do I use to accomplish this please?
请问我用什么方法来做到这一点? Thanks in advance.
提前致谢。
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;
}
string strDate = "20031006";
DateTime date = DateTime.ParseExact(strDate, "yyyyMMdd", CultureInfo.InvariantCulture);
使用与实际日期格式匹配的自定义格式字符串 :
var myDT = DateTime.ParseExact(myDate, "yyyyMMdd", CultureInfo.InvariantCulture);
Use ParseExact
method: MSDN reference 使用
ParseExact
方法: MSDN参考
string stringDate = "20000102";
DateTime dateTime = DateTime.ParseExact(stringDate, "yyyyMMdd", CultureInfo.InvariantCulture);
Here is your solution. 这是您的解决方案。
a single string format 单个字符串格式
using System.Globalization;
string dt = DateTime.Parse(txtDate.Text.Trim())
.ToString("yyyy/MM/dd", CultureInfo.InvariantCulture);
also can be done like this 也可以这样做
if you need a function which returns the required string : 如果您需要一个返回所需字符串的函数:
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;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.