如何解决如何将特定的字符串转换为DateTime?
我有以下格式的字符串:
Tuesday,Sep 01,2020 04:15
Thursday,Aug 27,2020 03:56
Friday,Aug 28,2020 07:30
Tuesday,Aug 04,2020 08:00
[Route("/test")]
public async void TestParseTime()
{
string pattern = "dddd,MMM dd,YYYY HH:MM";
string newsTimeString = "Thursday,2020 03:56";
DateTime newsTime = DateTime.ParseExact(newsTimeString,pattern,null);
Console.WriteLine("newsTime = " + newsTime);
}
但是将字符串解析为datetime失败,但出现以下异常:
如何在C#中将其转换为DateTime
?
解决方法
我建议使用功能强大的Convert.ToDateTime方法,并在那里简单地输入内容:
string newsTimeString = "Thursday,Aug 27,2020 03:56";
DateTime newsTime = Convert.ToDateTime(newsTimeString);
Console.WriteLine("newsTime = " + newsTime);
输出:
newsTime = 27.08.2020 03:56:00
实际上,“星期四”字符串是DateTime
对象的多余信息。因为它将从日历中知道星期几。您可以通过属性进行打印:
Console.WriteLine("Day = " + newsTime.DayOfWeek);
输出:
日期=星期四
编辑:
显然:“ Convert.ToDateTime只是call to DateTime.Parse”(Panagiotis Kanavos的评论),因此在这种情况下,您还可以使用:
DateTime newsTime = DateTime.Parse(newsTimeString);
并获得相同的结果,而无需指定任何格式。
免责声明:
从documentation的“备注”部分:
,“如果value不为null,则返回值是使用为当前区域性初始化的
DateTimeFormatInfo对象中的格式信息对value调用
DateTime.Parse方法的结果。 -
您的模式不正确。模式区分大小写。请改用此模式:
dddd,MMM dd,yyyy hh:mm
string pattern = "dddd,MMM dd,yyyy hh:mm";
Console.WriteLine(DateTime.Now.ToString(pattern));
string newsTimeString = "Thursday,2020 03:56";
DateTime newsTime = DateTime.ParseExact(newsTimeString,pattern,null);
Console.WriteLine("newsTime = " + newsTime);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。