C#で日付形式をDD-MM-YYYYに変換する方法は?私はDD-MM-YYYY形式のみを探しています。
最初のGoogle検索ヒットの1つによると、 http://www.csharp-examples.net/string-format-datetime/
// Where 'dt' is the DateTime object...
String.Format("{0:dd-MM-yyyy}", dt);
これが最も簡単な方法です。
これはストリング値です: "5/13/2012"
DateTime _date;
string day = "";
_date = DateTime.Parse("5/13/2012");
day = _date.ToString("dd-MMM-yyyy");
次のように出力されます:13-May-2012
string formattedDate = yourDate.ToString("dd-MM-yyyy");
DateTime dt = DateTime.Now;
String.Format("{0:dd-MM-yyyy}", dt);
DateTime s1 = System.Convert.ToDateTime(textbox.Trim());
DateTime date = (s1);
String frmdt = date.ToString("dd-MM-yyyy");
動作します
まず、文字列をDateTime変数に変換します。
DateTime date = DateTime.Parse(your variable);
次に、この変数を正しい形式の文字列に変換します。
String dateInString = date.ToString("dd-MM-yyyy");
DateTime dt = DateTime.Now;
String.Format("{0:dd-MM-yyyy}", dt);
C#6.0以降(Visual Studio 2015以降)では、フォーマットされた補間された文字列を使用できます。
var date = new DateTime(2017, 8, 3);
var formattedDate = $"{date:dd-MM-yyyy}";
さあ:
DateTime time = DateTime.Now;
Console.WriteLine(time.Day + "-" + time.Month + "-" + time.Year);
動作します! :)
私は同じ問題に遭遇しました。私がする必要があるのは、クラスの先頭に参照を追加し、現在実行中のスレッドのCultureInfoを変更することでした。
using System.Threading;
string cultureName = "fr-CA";
Thread.CurrentThread.CurrentCulture = new CultureInfo(cultureName);
DateTime theDate = new DateTime(2015, 11, 06);
theDate.ToString("g");
Console.WriteLine(theDate);
する必要があるのは、文化名を変更することだけです。たとえば、「en-US」=アメリカ合衆国「fr-FR」=フランス語を話すフランス「fr-CA」=フランス語を話すカナダなど...
日付変数は文字列または日付型として保存されていますか?
その場合、次のようなことをする必要があります
DateTime myDate = null;
DateTime.TryParse(myString,myDate);
または
Convert.ToDateTime(myString);
その後、日付変数でToString( "dd-MM-yyyy")を呼び出すことができます
問題は、文字列を変換しようとしていることです。そのため、最初に変数を日付にキャストし、その後に次のようなものを適用する必要がありますstring date = variableConvertedToDate.ToString("dd-MM-yyyy")
またはstring date = variableConvertedToDate.ToShortDateString()
この場合、結果はdd/MM/yyyyです。