加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – String to DateTime转换失败

发布时间:2020-12-15 21:58:26 所属栏目:百科 来源:网络整理
导读:我正在尝试将字符串从文本文件转换为DateTime,但我得到了奇怪的结果.在一台计算机上,它可以工作,但另一台,它没有.我如何在所有计算机上完成这项工作?在我的最后一个问题上,你说要添加文化的东西,它工作了几分钟,但它现在不再工作了.继承我的代码: string[]
我正在尝试将字符串从文本文件转换为DateTime,但我得到了奇怪的结果.在一台计算机上,它可以工作,但另一台,它没有.我如何在所有计算机上完成这项工作?在我的最后一个问题上,你说要添加文化的东西,它工作了几分钟,但它现在不再工作了.继承我的代码:

string[] stringArray = File.ReadAllLines("C:Program FilesPointOfSalesRecordTotals.txt");
            int lines = stringArray.Length;

            for (int i = 0; i < (lines / 5); i++)
            {
                TransactionList.Add(new Transaction
                {
                    TotalEarned = Convert.ToDouble(stringArray[(i * 5)]),TotalCost = Convert.ToDouble(stringArray[(i * 5) + 1]),TotalHST = Convert.ToDouble(stringArray[(i * 5) + 2]),Category = stringArray[(i * 5) + 3],HoursSince2013 = Convert.ToDateTime(stringArray[(i * 5) + 4],CultureInfo.InvariantCulture)
                });
            }

我收到错误字符串未被识别为有效的DateTime.

有什么线索吗?谢谢!

编辑:使用MessageBox.Show(stringArray [(i * 5)4]);我得到26/10/2013 11:58:03 AM

编辑:为什么这不能将当前时间转换为正确的文化?

DateTime Today = DateTime.Now;
            Today = DateTime.ParseExact(Today.ToString(),"dd/MM/yyyy HH:mm:ss tt",CultureInfo.InvariantCulture);

解决方法

在该系统上,您的字符串不是不变文化中的有效日期:26/10/2013 11:58:03 AM.不变文化预计月/日/年,而不是日/月/年.

您应指定用于生成您正在阅读的文件的相同文化.您需要有一些方法来确定或标准化用于写入文件的文化,以及从中读取.

Edit: Why won’t this work to convert current time to the right culture?

如果您当前的文化不使用dd / MM / yyyy的格式,那将失败. Today.ToString()没有指定文化或格式,所以它在美国系统上使用MM / dd / yyyy格式写出来,这将导致调用失败.

在您的情况下,我建议始终使用相同的文化进行读写 – 如果使用以下命令编写文件:theDate.ToString(CultureInfo.InvariantCulture),那么您可以使用Convert.ToDateTime(theString,CultureInfo.InvariantCulture)读取它,并且它将适用于任何系统,因为相同的规则(不变文化)用于写作和阅读.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读