【C#入門】Convert.ToDateTime(String, IFormatProvider)メソッドの使い方を徹底解説
C#のConvert.ToDateTime()メソッドは、指定されたカルチャ(culture)固有の書式情報に基づいて、日付と時刻を表す文字列を、それと等価な DateTime 値に変換します。文字列の日付形式が国や地域によって異なる場合でも、適切な IFormatProvider を渡すことで正確に解析できるのが特徴です。
構文
このメソッドの構文は以下の通りです。
public static DateTime ToDateTime (string val, IFormatProvider provider);
パラメータ
- val:変換対象となる日付と時刻を含む文字列。
- provider:カルチャ固有の書式情報を提供するオブジェクト(例:CultureInfo のインスタンス)。
戻り値・例外
- val が null の場合は、DateTime.MinValue を返します。
- 文字列が有効な日付・時刻として認識できない場合は、FormatException がスローされます。
使用例
それでは、Convert.ToDateTime() メソッドを実装した具体的なコード例を見てみましょう。ここでは「en-US」(英語圏・米国)のカルチャ情報を指定しています。
using System;
using System.Globalization;
public class Demo {
public static void Main(){
CultureInfo cultures = new CultureInfo("en-US");
String val = "11/11/2019";
Console.WriteLine("Converted DateTime value...");
DateTime res = Convert.ToDateTime(val, cultures);
Console.Write("{0}", res);
}
}実行結果
上記のプログラムを実行すると、以下のような出力が得られます。
Converted DateTime value... 11/11/2019 12:00:00 AM
ポイントまとめ
- provider を指定しない場合や null を渡した場合は、現在のスレッドのカルチャ設定が使用されます。
- 「11/11/2019」のような文字列は、en-US では「月/日/年」として解釈されますが、ja-JP では「年/月/日」または異なる順序として扱われるため、意図しない変換結果になることがあります。
- 多言語対応アプリケーションでは、明示的に CultureInfo を指定することで、日付解析の挙動を安定させることができます。
-
C#のConvert.ToUInt16メソッドで文字列を16ビット符号なし整数に変換する方法
C#では、Convert.ToUInt16メソッドを使用することで、指定した値を16ビット符号なし整数(ushort型)に変換することができます。 まず、変換対象となる文字列を用意します。 string str = 1129; この文字列を、Convert.ToUInt16メソッドを使って16ビット符号なし整数へ変換してみましょう。 ushort res; res = Convert.ToUInt16(str); 以下に、完全なサンプルプログラムを示します。 サンプルコード using System; public class Demo { public static void Ma
-
Pythonで文字列をタプルに変換する方法
Pythonで文字列をタプルに変換したい場合、「map」関数、「tuple」関数、「int」関数、そして「split」メソッドを組み合わせることで簡単に実現できます。map関数は、リストやタプルといったイテラブル(反復可能オブジェクト)の各要素に対して、指定した関数や処理を適用し、その結果を返す関数です。int関数は、与えられたデータを整数型に変換します(変換が可能な場合に限ります)。splitメソッドは、指定した区切り文字(指定しない場合はデフォルトの区切り文字)に基づいて、文字列を複数の部分に分割します。tuple関数は、与えられたデータをタプル型に変換します。以下に具体的な例を示します。