C# 问题:将字符串转换为可为空的日期时间

C# 问题:将字符串转换为可为空的日期时间,c#,datetime,C#,Datetime,我有一个网站,这是在两种语言(英语和俄语) 我有一个表单,其中日期被发布为字符串,我正在将字符串转换为可为空的日期时间,如下面的代码片段所示 string dts = form["startdatetime"].ToString(); string ets = form["enddatetime"].ToString(); String.Format("MM/dd/yyyy hh:mm:ss", dts); String.Format("MM/dd/yyyy hh:mm:ss", ets);

我有一个网站,这是在两种语言(英语和俄语)

我有一个表单,其中日期被发布为
字符串
,我正在将
字符串
转换为可为空的
日期时间
,如下面的代码片段所示

string dts = form["startdatetime"].ToString();
string ets = form["enddatetime"].ToString();

String.Format("MM/dd/yyyy hh:mm:ss", dts);
String.Format("MM/dd/yyyy hh:mm:ss", ets);

DateTime? dt = string.IsNullOrEmpty(dts) ? (DateTime?)null : DateTime.Parse(dts, CultureInfo.CreateSpecificCulture("en-US"));
DateTime? et = string.IsNullOrEmpty(ets) ? (DateTime?)null : DateTime.Parse(ets, CultureInfo.CreateSpecificCulture("en-US"));
但是,我遇到的问题是当我更改计算机的
DateTime
格式时。这给了我一个错误

字符串未被识别为有效的日期时间

我正在使用以下格式进行测试

d-M-y displays as 7-‎8-‎11

dd-MM-yy displays as ‎07-‎08-‎11

dd/MM/yy displays as ‎07/08/11

ddd-MMM-yyy displays as Sun-‎Aug-‎2011

ddd, MMM. yyy displays as Sun, ‎Aug. 2011

dddd-MMMM-yyyy displays as ‎Sunday-‎August-‎2011

dddd dd, MMMM yyyy displays as Sunday ‎07, ‎August ‎2011

如果Windows计算机以上述任何格式运行,我想将我的
字符串
转换为可为空的
日期时间
。我应该如何处理此错误?

您可以使用Try.Parse来代替Parse进行检查。但这是非常出乎意料的,您会以什么格式更改无法识别的日期时间?您的问题没有包含足够的信息,请参阅并创建一个。不管怎么说,我猜这是因为
/
使用了系统分隔符,而不是文字
/
。使用
\\/
表示文字斜杠。您的问题有点不清楚。
dts
ets
的值到底是多少?您试图将计算机日期时间格式更改为什么?您在“地区和语言”中更改了哪个日期时间?顺便说一下,您的
String.Format
使用不会对
dts
ets
产生任何影响。您是否尝试使用
ParseExact
来提供特定格式?请根据您的问题创建一个。如果您将数据存储在
DateTime
变量中,则此时它不再具有格式。@soner Gonul我已尝试过paresExact,但它会提示我相同的错误。