gpt4 book ai didi

c# - 将字符串转换为具有超过 7 位小数毫秒的 DateTime

转载 作者:行者123 更新时间:2023-11-30 18:58:33 24 4
gpt4 key购买 nike

所以我试图将以下格式的字符串日期转换为 DateTime。当使用格式字符串“fffffff”有 7 位小数秒时,我可以使用 ParseExact 解析它,但我得到的字符串可以(并不总是)有 9 位小数秒。

我真的不在乎最后几位数字是多少,因为无论如何我最终都会对其进行四舍五入。我正在寻找的是在我从 ParseExact 方法收到错误之前解析它们或截断它们的某种方法,因为它与“fffffff”不匹配。我唯一的想法是根据小数点后的字符数截断字符串。有没有更简单的方法来做到这一点?提前致谢!

要解析的示例字符串:“2015-12-10 13:14:15.123456789”

DateTime.ParseExact("2015-12-10 13:14:15.123456789", "yyyy-MM-dd HH:mm:ss.fffffff", System.Globalization.CultureInfo.InvariantCulture);

抛出一个 FormatException,但下面的工作正常。

DateTime.ParseExact("2015-12-10 13:14:15.1234567", "yyyy-MM-dd HH:mm:ss.fffffff", System.Globalization.CultureInfo.InvariantCulture);

最佳答案

我不相信你可以用普通的解析代码和现有的文本来做到这一点。 DateTime 的精度仅下降到滴答声,其中滴答声为 100 纳秒。我认为最简单的做法是截断字符串本身:

string pattern = "yyyy-MM-dd HH:mm:ss.fffffff";
if (text.Length > pattern.Length)
{
text = text.Substring(0, pattern.Length);
}
DateTime value = DateTime.ParseExact(text, pattern, CultureInfo.InvariantCulture);

强制性插件:在Noda Time 2.0 你不需要这样做,因为它支持纳秒级的精度:)

关于c# - 将字符串转换为具有超过 7 位小数毫秒的 DateTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34204766/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com