ここでは、日付をシステム固有の形式に変換しようとしていますが、tryparseが正しく動作していないため、指定されたdateformatに日付を変換できません。日付時刻をCで指定した日時形式に変換する
public partial class HomePage : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
labl.Text = Form1("12/05/2017");
}
protected void UpdateButton_Click(object sender, EventArgs e)
{
}
private string Form1(string date)
{
// Get the Current System culture.
CultureInfo ci = CultureInfo.CurrentCulture;
DateTimeFormatInfo dtfi = ci.DateTimeFormat;
string[] SystemDateTimePatterns = new string[250];
int i = 0;
foreach (string name in dtfi.GetAllDateTimePatterns('d'))
{
SystemDateTimePatterns[i] = name;
i++;
}
string date1 = "asd";
string[] myDateTimeFormat = { "MM-dd-yyyy", "MM/dd/yyyy", "yyyy-dd-MM", "MM/dd/yyyy HH:mm:ss", "dd-MM-yyyy", "dd/MM/yyyy", "yyyy-MM-dd", "dd/MM/yyyy HH:mm:ss" };
foreach (string dateFormat in myDateTimeFormat)
{
if (dateFormat == (SystemDateTimePatterns[0]))
{
SqlParameter StartingDateParam;
DateTime mdate;
if (DateTime.TryParseExact(date, dateFormat, CultureInfo.CurrentCulture, DateTimeStyles.None, out mdate))
{
StartingDateParam = new SqlParameter("@startingdate", SqlDbType.DateTime);
StartingDateParam.Value = mdate;
date1 = StartingDateParam.Value.ToString();
}
}
}
return date1;
}
}
あなたは、単にこれまでに '12月5日/ 2017'を解析したいですか?なぜそんなにコード?それは「月/日/年」か「日/月/年」ですか? – Jamiec
TryParseExactには、配列の配列をとるオーバーロードがあります。このコードは必要ありません – Steve
@jamiecそのdd/MM/yyyyとconvert.toDatetimeまたはtryParseはプロダクション側で動作していないため、これはなぜですか? – abhishek