C# 有没有办法将这种字符串转换成日期?

C# 有没有办法将这种字符串转换成日期?,c#,C#,正在尝试将这样的字符串Dec 1,2016 1:48 PM CST转换为DateTime对象 Convert.ToDateTime(story.addedDataString)不起作用,我也没料到它会起作用 System.FormatException:字符串未被识别为有效的 日期时间。有一个从索引21开始的未知单词 是我收到的错误消息。想知道我能否在转换之前告诉它格式 您可以使用DateTime.ParseExact()并使用可用的日期时间格式化程序指定格式字符串 例如: string dat

正在尝试将这样的字符串
Dec 1,2016 1:48 PM CST
转换为DateTime对象

Convert.ToDateTime(story.addedDataString)不起作用,我也没料到它会起作用

System.FormatException:字符串未被识别为有效的 日期时间。有一个从索引21开始的未知单词


是我收到的错误消息。想知道我能否在转换之前告诉它格式

您可以使用
DateTime.ParseExact()
并使用可用的日期时间格式化程序指定格式字符串

例如:

string date = "Dec 1, 2016  1:48 PM CST";
DateTime parsedDate = DateTime.ParseExact(myDate, "MMM d, yyyy h:mm tt", CultureInfo.InvariantCulture);
唯一的问题是它不能处理你的时区。您必须通过以下方式来处理时区:使用UTC偏移量替换字符串的该部分(如果您使用类似于
-06:00
的格式
zzz
,则
DateTime.ParseExact()
将处理该部分字符串,或者删除该部分字符串,并在拥有实际日期对象后对时区进行说明


您可以在

上阅读更多内容。您可以使用
DateTime.ParseExact()并使用可用的日期时间格式化程序指定格式字符串

例如:

string date = "Dec 1, 2016  1:48 PM CST";
DateTime parsedDate = DateTime.ParseExact(myDate, "MMM d, yyyy h:mm tt", CultureInfo.InvariantCulture);
唯一的问题是它不能处理你的时区。您必须通过以下方式来处理时区:使用UTC偏移量替换字符串的该部分(如果您使用类似于
-06:00
的格式
zzz
,则
DateTime.ParseExact()
将处理该部分字符串,或者删除该部分字符串,并在拥有实际日期对象后对时区进行说明

您可以在

上阅读更多内容,它将为您提供大部分信息。例如:

string input = "Dec 1, 2016  1:48 PM";
DateTime date = DateTime.ParseExact(input, "MMM d, yyyy  h:mm tt", CultureInfo.InvariantCulture);
但是,它不通过缩写来处理时区,因为有缩写。框架内不直接支持将“CST”转换为抵销

如果转换为包含偏移量的格式,则可以将其转换为:

string input = "Dec 1, 2016  1:48 PM -06:00";
DateTime date = DateTime.ParseExact(input, "MMM d, yyyy  h:mm tt K", CultureInfo.InvariantCulture);
会让你一路走到那里。例如:

string input = "Dec 1, 2016  1:48 PM";
DateTime date = DateTime.ParseExact(input, "MMM d, yyyy  h:mm tt", CultureInfo.InvariantCulture);
但是,它不通过缩写来处理时区,因为有缩写。框架内不直接支持将“CST”转换为抵销

如果转换为包含偏移量的格式,则可以将其转换为:

string input = "Dec 1, 2016  1:48 PM -06:00";
DateTime date = DateTime.ParseExact(input, "MMM d, yyyy  h:mm tt K", CultureInfo.InvariantCulture);

考虑搜索类似解析的关键字。因为这听起来像是你想要做的。将字符串解析为DATETION对象,并提供自定义格式。考虑搜索类似解析的关键字。因为这听起来像是你想要做的。将字符串解析为DateTime对象,并提供自定义格式。这是一条注释,而不是答案如果您演示了它的工作原理,这将是一个答案。这是一条注释,而不是答案如果您演示了它的工作原理,这将是一个答案。