如何將字符串(如"10/19/2017 12:00:00 AM"
)轉換爲DateTime?我用Convert.ToDateTime()
但它給出了一個錯誤;將字符串轉換爲DateTime Asp.Net
字符串未被識別爲有效的DateTime。
如何修復?
如何將字符串(如"10/19/2017 12:00:00 AM"
)轉換爲DateTime?我用Convert.ToDateTime()
但它給出了一個錯誤;將字符串轉換爲DateTime Asp.Net
字符串未被識別爲有效的DateTime。
如何修復?
您應該使用ParseExact
var result = DateTime.ParseExact("10/19/2017 12:00:00 PM", "MM/dd/yyyy HH:mm:ss tt", CultureInfo.InvariantCulture);
感謝它的運作.. :) :) – user111
wikipedia.org/wiki/12-hour_clock),我認爲使用'hh'而不是'HH'說明符會更好。 –
Convert.ToDateTime
沒有指定格式解析,您需要使用DateTime.ParseExact
或DateTime.TryParseExact
:
// DateTime.ParseExact
DateTime date = DateTime.ParseExact("10/19/2017 12:00:00 PM", "MM/dd/yyyy HH:mm:ss tt", CultureInfo.InvariantCulture);
// DateTime.TryParseExact
DateTime.TryParseExact("10/19/2017 12:00:00 PM", "MM/dd/yyyy HH:mm:ss tt", CultureInfo.InvariantCulture, DateTimeStyles.None, out date);
由於'AM'和'PM'指示符用於[12小時制](https://en.wikipedia.org/wiki/12-hour_clock),所以我認爲使用'hh'代替'HH'說明符。 –
String MyString= "10/19/2017 12:00:00 AM";
DateTime MyDateTime = new DateTime();
MyDateTime = DateTime.ParseExact(MyString, "MM/dd/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture);
格式變爲如下
d - 沒有前導零的月份的數字日。
dd - 具有前導零的月份的數字日。
ddd - 星期幾的縮寫名稱。
dddd - 星期幾的全名。
f,ff,fff,ffff,fffff,ffffff,fffffff - 第二部分。精度越高Fs越高。
h - 12小時制時鐘,無前導零。
hh - 帶前導零的12小時制時鐘。
H - 24小時制時鐘,沒有前導零。
HH - 帶領先零的24小時制時鐘。
m - 沒有前導零的分鐘數。 毫米 - 帶前導零的分鐘。
M - 沒有前導零的數字月份。
MM - 帶前導零的數字月份。
MMM - 月份的縮寫名稱。
MMMM - 全月名稱。
s - 秒沒有前導零。 ss - 帶前導零的秒。
t - AM/PM但只有第一個字母。 tt - 上午/下午(上午/下午)
y - 帶出世紀和領先零的年份。
yy - 帶出世紀的年份,領先零。
yyyy - 與世紀的一年。
zz - 用+/-設置時區。
你不需要'DateTime MyDateTime = new DateTime();'因爲你將會創建新的日期'DateTime MyDateTime = DateTime.ParseExact(...'就足夠了。 – Fabio
'DateTime.Parse(「10/19/2017 12:00:00 AM」)'或ParseExact – CodingYoshi
[將字符串解析爲C#中DateTime的字符串](https://stackoverflow.com/questions/5366285/)因爲'AM'和'PM'指示符用於[12小時制](https:// en.wikipedia.org/wiki/Delphi_Display-date-in-c-sharp) – Fabio