C# 当布局为RightToLeft时,将字符串解析为DateTime类型

C# 当布局为RightToLeft时,将字符串解析为DateTime类型,c#,parsing,datetime,C#,Parsing,Datetime,我想解析标签中显示的字符串值,然后将该值与其他值一起插入数据库中的表中。。因此,我有一个包含insert语句的存储过程和一个执行执行insert语句的方法,最后我在button click事件中调用该方法来执行insert方法,但它给了我一条异常消息“输入字符串的格式不正确”和一条提示“在将每个变量放入datetime对象之前,分析字符串以获取日期” 此方法在按钮单击事件中的调用为: DateTime billDateTime = DateTime.Parse(pBillDateLbl.Text

我想解析标签中显示的字符串值,然后将该值与其他值一起插入数据库中的表中。。因此,我有一个包含insert语句的存储过程和一个执行执行insert语句的方法,最后我在button click事件中调用该方法来执行insert方法,但它给了我一条异常消息“输入字符串的格式不正确”和一条提示“在将每个变量放入datetime对象之前,分析字符串以获取日期”

此方法在按钮单击事件中的调用为:

DateTime billDateTime = DateTime.Parse(pBillDateLbl.Text);
purchaseCashBill.InsertGeneralCashBillInfo(billDateTime, pBillUserNameTxt.Text, Convert.ToInt32(pBillCompCmbo.SelectedValue), pBillCompCmbo.SelectedText, Convert.ToDouble(pBillItmTtlPrice.Text), true);  
我也尝试过用这种方法来修剪字符串,但出现了相同的异常:

DateTime billDateTime = DateTime.ParseExact(
   pBillDateLbl.Text, 
  "d/M/yyyy hh:mm:ss", 
   System.Globalization.CultureInfo.CurrentCulture);
标签的值的形式为:

pBillDateLbl.Text = DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss");  

在我的应用程序中如下所示:05:45:22 05/04/2017

根据您在注释中提供的值--
05:43:34 04/05/2017
,您可以清楚地看到格式字符串的顺序错误。此外,它的结尾还包含一个额外的空格。请尝试以下操作:

DateTime billDateTime = DateTime.ParseExact(pBillDateLbl.Text, "hh:mm:ss dd/MM/yyyy", System.Globalization.CultureInfo.CurrentCulture);

pBillDateLbl.Text的值是多少
您的输入值(字符串)是多少?听起来问题与SQL无关,纯粹是解析问题-因此,请提供一个说明,包括硬编码输入。在发布之前,执行诊断工作以将问题减少到最低限度是很重要的:如果您从未使用
InsertGeneralCashBillInfo
方法,那么这就是not相关IMO。在您的问题中,您应该拥有的唯一代码是
DateTime billDateTime=DateTime.ParseExact(pBillDateLbl.Text,“d/M/yyyy hh:mm:ss”,System.Globalization.CultureInfo.CurrentCulture);
。所有其他代码和详细信息都是无关的。@fubo标签的输入格式为天-月-年-小时:muinets:seconds-pBillDateLbl.Text=DateTime.Now.ToString(“d/M/yyyy hh:mm:ss”);它给我一个异常“字符串未被识别为有效的日期时间。“@MohammedShfq——您是否使用了我在回答中提供的格式字符串?代码对我来说运行得很好。是的,我接受了它,并根据标签名称更改了x变量,它给了我这个例外,您肯定
pBillDateLbl.Text
的值正好是
“05:43:34 04/05/2017”
?没有额外的空格等。是的,时间部分和日期部分之间只有一个空格