【问题标题】:DateTime Conversion Fails/Succeeds on different computers不同计算机上的日期时间转换失败/成功
【发布时间】:2013-11-04 18:14:31
【问题描述】:

我正在尝试将字符串转换为 DateTime,在一台计算机上它可以正常工作,但在另一台计算机上却不行!它运行的计算机运行的是 32 位 windows 7,它不运行的计算机运行的是 64 位 windows 7。下面是 cod:

            for (int i = 0; i < (lines / 5); i++)
            {
                MessageBox.Show(stringArray[(i * 5) + 4]);
                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])
                });
            }

MessageBox 只是用来检查哪个字符串无法转换,就是这样,在第一次迭代中:10/26/2013 11:58:03 AM

任何线索为什么这无法在我的一台计算机上转换?我完全糊涂了……

谢谢! 内森

【问题讨论】:

  • 它是如何失败的?计算机是什么文化?
  • 哇,刚刚发现了另一个奇怪的事实。它实际上适用于计算机上的一个帐户,但不适用于另一个帐户。两个帐户都是管理员。
  • @Nathan 很可能一个帐户的文化设置不同
  • 我会试试你的解决方案,然后告诉你会发生什么

标签: c# .net datetime typeconverter


【解决方案1】:

任何线索为什么这无法在我的一台计算机上转换?

最常见的原因是文化差异。由于您没有指定特定的文化,因此使用系统上的当前文化。

尝试使用:

HoursSince2013 = Convert.ToDateTime(stringArray[(i * 5) + 4], CultureInfo.InvariantCulture)

【讨论】:

  • CultureInfo 在上下文中不存在。是否需要命名空间?
  • @nathan System.Globalization
  • 不确定命名空间是否是正确的名称,我的意思是 using system.x 的东西。 :p
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-24
相关资源
最近更新 更多