2017-06-02 23 views
0

ここでは、日付をシステム固有の形式に変換しようとしていますが、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; 
} 
} 
+0

あなたは、単にこれまでに '12月5日/ 2017'を解析したいですか?なぜそんなにコード?それは「月/日/年」か「日/月/年」ですか? – Jamiec

+0

TryParseExactには、配列の配列をとるオーバーロードがあります。このコードは必要ありません – Steve

+0

@jamiecそのdd/MM/yyyyとconvert.toDatetimeまたはtryParseはプロダクション側で動作していないため、これはなぜですか? – abhishek

答えて

0

あなたはコードが必要以上に複雑です。あなたの入力は12/05/2017ですし、これはday/month/year形式で次のように述べています

var input = "12/05/2017`; 
DateTime date = DateTime.Now; 
var parsed = DateTime.TryParseExact(input,"dd/MM/yyyy",CultureInfo.CurrentCulture, DateTimeStyles.None,out date); 

ライブ例:http://rextester.com/OSFV37546

+0

を指定している形式に日付を変換する他の方法はありますか?ここでは、正確な形式を指定できる理由がわかりますが、あなたがより大きな問題を抱えていることが分かっていないと、 – abhishek

+1

@abhishekが失敗します。あなたの入力例はあいまいな日付の完全な例です。あなたは入力と予想されるフォーマットを知っていなければなりません。少なくとも、最初に試してみる必要があります。 – Jamiec

+0

しかし、私はシステムのフォーマットを知っているので、それに基づいて私は任意の入力日付を変換できますか? – abhishek

関連する問題