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,但它会提示我相同的错误。