質問
いうまに変換する必要があるテキストデータ。
また、以下のコードん!
string s = textBox1.Text;
if (String.IsNullOrEmpty(s))
{
textBox2.Text = "Please enter any date.";
}
else
{
DateTime dt = DateTime.Parse(s);
string day = dt.Day.ToString();
string month = dt.Month.ToString();
string year = dt.Year.ToString();
s = day + "/" + month + "/" + year;
textBox2.Text = s;
}
このことのみを変更しては、以下のフォーマットのデータです。
10/10/09や10/10/2009----変換日------10/10/2009
12/13/2009や12/13/9----変換日-------12/13/2009
10/16----変換日-----------------------16/10/2009
2009/12/10----変換日------------------10/12/2009
以下のフォーマットは少なくなってきている変更を"mm/dd/yyyy
16/10-dd/mm
060209は06022009ddmmyyyy
13122009mmddyyyy
20091213yyyymmdd
20091312yyyyddmm
20.07.2009/20.07.2009/20-07-2009/20-07-09
誰でもできるので教えてくれるので助かります。私は非常に新しいc#
解決 7
pplが提供してくれたすべてのサポートとガイダンスに感謝します。 クエリの解決策を見つけました
新しいテキストボックスが明示的に作成され、ParseExact関数を使用してDateTime値が変換されます。
以下は使用されたフォームです。代替テキストhttp://img146.imageshack .us / img146 / 2107 / form.jpg
コードは以下に書かれています
private void button1_Click(object sender, EventArgs e)
{
string s = textBox1.Text;
string DFF = textBox3.Text;
//To check whether field is empty
if (String.IsNullOrEmpty(s))
{
MessageBox.Show("Please enter correct date");
textBox2.Text = "Enter correct date";
}
else
{
DateTime dt = DateTime.ParseExact(s, DFF, null);
textBox2.Text = dt.ToShortDateString();
}
}
このコードは、すべての日付タイプの出力を提供します:
dd.mm.yyyyまたはdd-mm-yyyyまたはdd \ mm \ yyyy
mm.dd.yyyyまたはmm-dd-yyyyまたはmm \ dd \ yyyy
yyyy.mm.ddまたはyyyy-mm-ddまたはyyyy \ mm \ dd
yyyy.dd.mmまたはyyyy-dd-mmまたはyyyy-mm-dd
ddmmyyまたはmmddyyまたはyyddmm
dd \ mmまたはmm \ ddまたはdd.mmまたはmm.dd
他のヒント
日付の解析はそれよりも少し複雑です、私は恐れています。それはあなたの文化/国の設定に依存します。 DateTime.Parse のオーバーロードを見てください。 。
また、日付を出力するときに、 String.Format のように:
String.Format("{0:dd/MM/yyyy}", dt)
まっていく独自の構文解析のためのすべての非標準フォーマットものの形"yyyymmdd""yyyyddmm"の問題がある場合、必要なユーザー指定の入力フォーマットまでの変換が間違っている場合があります。
のみ DateTime.構文解析 (もよBenjol)で解決問題のための共通フォーマットを通じて使われます。
DateTime.Parseは、指定したすべての組み合わせを解析できない可能性があります。最初にDateTime.TryParseを試して、入力日付が解析可能かどうかを確認することをお勧めします。 falseが返された場合は、ParseExact(または、さらに良いのはTryParseExact)を使用して、予想される各日付形式と照合します。
残念ながら、この問題に対する万能のソリューションはないと思います。
DateTime.ParseExactを使用できます
例:
DateTime.ParseExact("20090823", "yyyyMMdd", null);
DateTime.ParseExact("16/10", "dd/MM", null);
編集: DateTime.TryParse (または DateTime.TryParseExact )で入力した日付を検証します。
DateTime date;
string error = "";
if (!DateTime.TryParse("12978434", out date))
{
error = "Invalid date";
}
TextBoxの代わりに 'DatePicker' / Calendarコントロールを使用することは可能ですか?
これにより、ユーザーが指定できる可能性のあるすべての日付形式を処理する必要がなくなります。また、より良いユーザーエクスペリエンスを提供しています。
OPコメント後に更新:
他のポスターが示唆しているように、DateTime.TryParseを最初のパスとして使用して、サポートされている標準形式の日付文字列を処理します。次に、サポートされる非標準形式ごとにDateTime.ParseExactにフォールバックする必要があります。最後に、日付以外の文字列またはサポートされていない日付形式のエラーにフラグを立てる必要があると思います。