C# 如何将数据转换为DateTime对象

C# 如何将数据转换为DateTime对象,c#,datetime,data-conversion,C#,Datetime,Data Conversion,如何将一般形式为“ccyymdd”的日期字符串转换为C#中的DateTime对象 例如,如何将中的“20100715”转换为DateTime对象 请-没有指向Microsoft技术文档的RTFM链接 非常感谢…var dt=DateTime.Parse(“您的日期字符串”).ToString(“yymmdd”) 我认为cc不是一个有效的日期格式选项 正如Richard指出的,您还可以使用DateTime.ParseExact,它允许您使用区域性信息进行解析,也可以使用与DateTime.Pars

如何将一般形式为“ccyymdd”的日期字符串转换为C#中的DateTime对象

例如,如何将中的“20100715”转换为DateTime对象

请-没有指向Microsoft技术文档的RTFM链接


非常感谢…

var dt=DateTime.Parse(“您的日期字符串”).ToString(“yymmdd”)

我认为
cc
不是一个有效的日期格式选项

正如Richard指出的,您还可以使用
DateTime.ParseExact
,它允许您使用区域性信息进行解析,也可以使用与
DateTime.ParseExact
相同的
DateTime.ParseExact
,但如果存在异常,则返回空日期,而不是引发异常

编辑:

问题已更新,因此专门返回了
DateTime
。在这种情况下,您可以省略我答案中的
.ToString()
部分。调用
DateTime.Parse()
将返回一个
DateTime
对象。通过
ToString()
获取日期值时,只需传递所需的格式字符串即可获得所需格式的日期。 干杯 Jas.

看一看

值得一提

DateTime.TryParse();
System.DateTime.Parse(yourDateString)

您可能必须将字符串操作为该方法可以首先处理的格式


如需了解更多信息,请参考Mike的答案,如果您的日期字符串已消毒:

否则:

DateTime dt;
if (!DateTime.TryParseExact("20100715", "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.None, out dt))
{
    // Handle bad date
}
我不确定“cc”部分是什么,但有几个选项



可以转换字符串,但如果字符串为非标准格式,则可能需要先进行一些预转换

“c”占位符代表什么?@jlafay“c”代表世纪。示例:ccyy=2010假设您的意思是4位数的年、2位数的月和2位数的日,那么您需要
var dt=DateTime.Parse(“20101231”)今年最后一天。-1如果你不愿意RTFM,为什么stackoverflow要为你做你的工作?谢谢大家的及时回答。不得不说,我很惊讶“ccyy”似乎能甩掉几个人。我已经使用这种通用格式很多年了,因为它帮助我在处理只支持日期格式(如“dd-mm-yy”)的遗留软件时区分开来。抱歉,这可能会造成混乱。它的意思是世纪。这是OP询问的大部分(如果不是全部的话)。谢谢Jason。是的,我知道“cc”是可疑的,我只是用它来帮助区分世纪和世纪内的年份。+1但是@Jason Evans您可能想编辑您的答案,将其保留为datetime对象,而不是将其转换回字符串。我想这就是@Noldorin的意思。@Noldorin-很公平,我已经向他展示了如何在.NET中解析日期,但没有展示如何包含世纪值。“公平竞争,你提供了一个更彻底的解决方案。”杰森:这很光荣。如果您充实了字符串中关于
cc
无效的部分。。。如果删除ToString调用,我可以将-1改为+1,但我的投票从来都不是一成不变的19xx年的cc值为19,20xx年的cc值为20。那么1970年1月1日的例子是19700101?这几乎肯定是一个非标准字符串。您可以尝试DateTime.Parse,如果它不起作用,您必须重新处理字符串,然后将经过清理的字符串输入DateTime.Parse.yyyyMMdd与日期格式一样标准。看到了吗,这仅仅意味着2010年的20(OP意味着yyyymmdd)——DateTime对象可以很好地处理它。DateTime.Parse(“20100715”)抛出System.FormatException。他改变了它,现在它可以了,但以前不起作用。我删除了我的-1,我想它被否决了,因为它不工作。请参阅我之前的评论。@Mike,你说得对-我认为它的工作方式与SQL Server解析器相同。这个问题比第一次出现的更复杂。在所有的答案中,我认为这是解析日期字符串最干净的方法。看看Mike。非常感谢。你留了我剩下的一点头发,没问题。我们这些愚蠢的家伙需要团结一致这也是我格式化日期时间的方式,回答相同的解决方案毫无意义。干得好,迈克+1.
using System.Globalization;

DateTime.ParseExact("20100715", "yyyyMMdd", CultureInfo.InvariantCulture);
DateTime dt;
if (!DateTime.TryParseExact("20100715", "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.None, out dt))
{
    // Handle bad date
}
using System.Globalization;

DateTime.ParseExact("20100715", "yyyyMMdd", CultureInfo.InvariantCulture);