7

重複の可能性:
文字列をC#のDateTimeに変換します

文字列をフォーマットでDateTimeに変換するにはどうすればよいですか?

Convert.ToDateTime("12/11/17 2:52:35 PM")

結果はそうです12/11/2017 02:52:35 PM、そしてこれは私の期待が11/17/2012 02:52:35 PM

4

5 に答える 5

18

あなたが探してDateTime.ParseExact()いる。

DateTime.ParseExact(myStr, "yy/MM/dd h:mm:ss tt", CultureInfo.InvariantCulture);
于 2012-12-31T16:41:36.527 に答える
3

DateTime.ParseExact()メソッドを使用します。

指定された形式とカルチャ固有の形式情報を使用して、日付と時刻の指定された文字列表現を同等のDateTimeに変換します。文字列表現の形式は、指定された形式と正確に一致する必要があります。

   DateTime result = DateTime.ParseExact(yourdatestring, 
                                        "yy/MM/dd h:mm:ss tt",             
                                         CultureInfo.InvariantCulture);
于 2012-12-31T16:42:12.567 に答える
1

いずれかの方法を使用することをお勧めしDateTime.*Parseます。

これらは、を表す文字列DateTime、フォーマット文字列(またはそれらの配列)およびその他のパラメータを取ります。

カスタムフォーマット文字yy/MM/dd h:mm:ss tt列は。

それで:

var date = DateTime.ParseExact("12/11/17 2:52:35 PM", 
                               "yy/MM/dd h:mm:ss tt"
                               CultureInfo.InvariantCulture);
于 2012-12-31T16:41:06.683 に答える
1

文字列のカルチャを指定する必要があります:

// Date strings are interpreted according to the current culture. 
// If the culture is en-US, this is interpreted as "January 8, 2008",
// but if the user's computer is fr-FR, this is interpreted as "August 1, 2008" 
string date = "01/08/2008";
DateTime dt = Convert.ToDateTime(date);            
Console.WriteLine("Year: {0}, Month: {1}, Day: {2}", dt.Year, dt.Month, dt.Day);

// Specify exactly how to interpret the string.
IFormatProvider culture = new System.Globalization.CultureInfo("fr-FR", true);

// Alternate choice: If the string has been input by an end user, you might  
// want to format it according to the current culture: 
// IFormatProvider culture = System.Threading.Thread.CurrentThread.CurrentCulture;
DateTime dt2 = DateTime.Parse(date, culture, System.Globalization.DateTimeStyles.AssumeLocal);
Console.WriteLine("Year: {0}, Month: {1}, Day {2}", dt2.Year, dt2.Month, dt2.Day);

/* Output (assuming first culture is en-US and second is fr-FR):
    Year: 2008, Month: 1, Day: 8
    Year: 2008, Month: 8, Day 1
 */
于 2012-12-31T16:41:54.673 に答える
0

これを試して

dateValue = DateTime.ParseExact(dateString,
                                "yy/MM/dd hh:mm:ss tt",
                                new CultureInfo("en-US"),
                                DateTimeStyles.None);

「tt」はAM/PM指定子です。

于 2012-12-31T16:48:45.327 に答える