C#において文字列を日付型に変換する方法は重要です。
特に日付や時刻を正確に扱いたい場合には適切な変換手法を知っておくことが必要です。
この記事では文字列を日付に変換する方法について、TryParseメソッドを利用してわかりやすく解説します。
TryParseメソッドで文字列を日付に変換
C#ではDateTime.TryParseメソッドを使用して文字列を日付に変換することができます。
このメソッドは変換が成功したかどうかを真偽値で返します。
string dateString = "2023-12-31";
DateTime resultDate;
if (DateTime.TryParse(dateString, out resultDate))
{
Console.WriteLine("変換成功:" + resultDate);
}
else
{
Console.WriteLine("変換失敗");
}
この例では、dateStringという文字列をDateTime.TryParseメソッドを用いてDateTime型に変換しています。
変換が成功すると結果がresultDateに格納され成功メッセージが表示されます。
yyyyMMdd形式のフォーマットに変換
文字列を日付型に変換するだけでなく指定したフォーマットで表示したい場合もあります。
その際には、ToStringメソッドを用いてフォーマットを指定します。
string dateString = "2023/12/31";
DateTime resultDate;
if (DateTime.TryParse(dateString, out resultDate))
{
Console.WriteLine("変換成功:" + resultDate.ToString("yyyyMMdd"));
}
else
{
Console.WriteLine("変換失敗");
}
この例では、dateStringの文字列をDateTime型に変換し、
ToStringメソッドを使って”yyyyMMdd”のフォーマットで表示しています。
年月日のフォーマットに変換
文字列を日付型に変換するだけでなく指定したフォーマットで表示したい場合もあります。
その際には、ToStringメソッドを用いてフォーマットを指定します。
string dateString = "2023/12/31";
DateTime resultDate;
if (DateTime.TryParse(dateString, out resultDate))
{
Console.WriteLine("変換成功:" + resultDate.ToString("yyyy年MM月dd日"));
}
else
{
Console.WriteLine("変換失敗");
}
この例では、dateStringの文字列をDateTime型に変換し、
ToStringメソッドを使って”yyyy年MM月dd日”のフォーマットで表示しています。
TryParseExactメソッドで厳密なフォーマット指定
TryParseExactメソッドを使用すると厳密なフォーマットを指定して変換を行うことができます。
これにより特定のフォーマットに厳密に一致しない場合は変換を拒否することができます。
string dateString = "2023-12-31";
DateTime resultDate;
if (DateTime.TryParseExact(dateString, "yyyy-MM-dd", CultureInfo.InvariantCulture, DateTimeStyles.None, out resultDate))
{
Console.WriteLine("変換成功:" + resultDate);
}
else
{
Console.WriteLine("変換失敗");
}
この例では、dateStringが”yyyy-MM-dd”のフォーマットに厳密に一致する場合のみ変換が成功します。
まとめ
この記事ではC#で文字列を日付に変換する方法について、
基本的なDateTime.TryParseメソッドやフォーマット指定厳密なフォーマットの指定について解説しました。
正確で安全な日付変換を行うために、TryParseメソッドを活用しましょう。