将字符串转换为DateTime Asp.Net
如何将字符串(如"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