如何将诸如2009-05-08 14:40:52,531这样的字符串转换为DateTime?
当前回答
由于您处理的是基于24小时的时间,并且您使用逗号分隔秒分数,因此我建议您指定一个自定义格式:
DateTime myDate = DateTime.ParseExact("2009-05-08 14:40:52,531", "yyyy-MM-dd HH:mm:ss,fff",
System.Globalization.CultureInfo.InvariantCulture);
其他回答
我尝试了各种方法。对我有用的是:
Convert.ToDateTime(data, CultureInfo.InvariantCulture);
我的数据是2017年9月24日上午9:31:34
String now = DateTime.Now.ToString("YYYY-MM-DD HH:MI:SS");//make it datetime
DateTime.Parse(now);
这个给了你
2019-08-17 11:14:49.000
你想快点吗?
假设您有一个格式为yyMMdd的日期。
我发现转换它的最快方法是:
var d = new DateTime(
(s[0] - '0') * 10 + s[1] - '0' + 2000,
(s[2] - '0') * 10 + s[3] - '0',
(s[4] - '0') * 10 + s[5] - '0')
只需根据您选择的日期格式选择索引。如果你需要速度,你可能不介意函数的“非泛型”方式。
此方法所需时间约为以下操作所需时间的10%:
var d = DateTime.ParseExact(s, "yyMMdd", System.Globalization.CultureInfo.InvariantCulture);
试试这个
DateTime myDate = DateTime.Parse(dateString);
一个更好的方法是:
DateTime myDate;
if (!DateTime.TryParse(dateString, out myDate))
{
// handle parse failure
}
我只是找到了一个优雅的方法:
Convert.ChangeType("2020-12-31", typeof(DateTime));
Convert.ChangeType("2020/12/31", typeof(DateTime));
Convert.ChangeType("2020-01-01 16:00:30", typeof(DateTime));
Convert.ChangeType("2020/12/31 16:00:30", typeof(DateTime), System.Globalization.CultureInfo.GetCultureInfo("en-GB"));
Convert.ChangeType("11/شعبان/1437", typeof(DateTime), System.Globalization.CultureInfo.GetCultureInfo("ar-SA"));
Convert.ChangeType("2020-02-11T16:54:51.466+03:00", typeof(DateTime)); // format: "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffzzz"
推荐文章
- 远程主机强制关闭现有连接
- 如何选择记录从过去24小时使用SQL?
- 为什么ReSharper想要使用'var'的一切?
- 如何检查一个对象是否为空?
- 为什么要删除不必要的c#使用指令?
- 使用Pandas为字符串列中的每个值添加字符串前缀
- 我如何能匹配一个字符串与正则表达式在Bash?
- 为什么使用HttpClient进行同步连接
- 尝试模拟datetime.date.today(),但不工作
- 什么是MvcHtmlString,什么时候我应该使用它?
- 我怎么能找到一个列表<>的最后一个元素?
- 如何隐藏关闭按钮在WPF窗口?
- 确定文本文件中的行数
- 如何测试一个字符串是否包含列表中的一个子字符串,在熊猫?
- 生成错误:必须向系统添加引用。运行时