具有自定义日期格式的DateTime.ParseExact:在Windows上有效,但在树莓派上无效

清科

我目前正在开发一个dotnet core 3.0应用程序,该应用程序需要将不同的datetime字符串解析为System.DateTime。我的开发环境是Windows 10上的VS2019,但该应用程序稍后将在Raspbian(debian-arm)上运行。让我们看一下这个示例代码:

// input string
const string testdate = "Jan. 1 01:05:26";

var dateFormats = new[] { "MMM. d HH:mm:ss", "MMM. dd HH:mm:ss" };

var dateTime = DateTime.ParseExact(testdate, dateFormats, CultureInfo.CurrentCulture, DateTimeStyles.AssumeLocal);

// output should be: 01.01.2020 01:05:26
Console.WriteLine($"Date: {dateTime.ToString("dd.MM.yyyy HH:mm:ss")}");

虽然这可以在Windows 10下的开发中按预期工作,但它将在raspbian上引发异常:

System.FormatException: String 'Jan. 1 01:05:26' was not recognized as a valid DateTime.

我已经检查了CultureInfo,但是两个系统都设置为同一系统。我在这里想念什么吗?我如何确保这些日期时间在树莓派上正确解析?

更新:

我只是注意到日期的年份部分丢失了。这是该例外的原因吗?但是为什么要在Windows上运行并假设当前年份呢?

解:

正如nl-x建议的那样,我尝试打印格式化为我输入的日期格式的当前日期时间。在那里:

DateTime.Now.ToString("MMM. d HH:mm:ss")
// Windows output: Jan. 2 16:29:45
// Raspbian output: Jan.. 2 16:29:45

显然,Raspbian已经以“ MMM”格式包含了结尾点,而Windows没有。将我的日期格式更改为:

var dateFormats = new[] { "MMM. d HH:mm:ss", "MMM. dd HH:mm:ss", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" };

现在可以在Windows和Linux中使用。谢谢!

l

尝试使用不变文化,或明确设置文化。

您的本地系统可能以与Linux系统不同的语言运行。

本地系统上的“ Jan”是什么,在Linux系统上可能有所不同。

尝试从Linux上以当前格式打印日期,看看它是否对“ Jan” EG使用了其他格式 dateTime.Now.ToString("MMM. d HH:mm:ss", "MMM. dd HH:mm:ss")

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

具有动态自定义格式日期的条件格式

来自分类Dev

CurrentItem在iOS上无效,但在Android上有效

来自分类Dev

DelegatingHandler在Localhost上有效,但在Azure上无效

来自分类Dev

CMake FIND_LIBRARY在Windows上有效,但在OS X上无效

来自分类Dev

读取本地文件的Javascript在Windows上有效,但在Linux上无效

来自分类Dev

使用具有自定义格式的时刻格式化日期

来自分类Dev

自定义日期的DateTime.ParseExact格式

来自分类Dev

Django自定义命令在命令行上有效,但在call_command上无效

来自分类Dev

具有自定义格式的C#通用DateTime.ToString()

来自分类Dev

C#-具有自定义日期格式的类型转换器

来自分类Dev

在JQGrid中具有用于日期字段的自定义格式化程序

来自分类Dev

ASP.NET/VB日期在localhost上有效,但在remoteserver上无效

来自分类Dev

具有自定义格式的XML编写器

来自分类Dev

具有自定义JSON格式的Ember RESTAdapter

来自分类Dev

具有标记的Excel自定义格式url列

来自分类Dev

具有自定义格式的XML编写器

来自分类Dev

具有废纸ster格式的cAdvisor自定义指标

来自分类Dev

将输入限制为仅某些字符在Chrome上有效,但在Firefox上无效

来自分类Dev

UITextFieldDelegate在iOS 8上有效,但在iOS 7上无效

来自分类Dev

wordpress:datepicker在小部件选项页面上有效,但在定制器上无效

来自分类Dev

jQuery UI Datepicker在<input>上有效,但在<h:inputText>上无效

来自分类Dev

Linux /为什么su命令在CMD上有效但在脚本上无效?

来自分类Dev

来自URL的Open App在Firefox for Android上有效,但在Google Chrome上无效

来自分类Dev

为什么我的C ++互操作在.Net 4.5上有效但在4上却无效

来自分类Dev

SSLContext和PKCS12密钥库-在JVM上有效,但在Android上无效

来自分类Dev

在WAMP本地主机上有效但在WebServer上无效的PHP代码

来自分类Dev

Theos tweak在iPhone 5s上有效,但在iPad 3上无效

来自分类Dev

Web Service SOAP Request在SOAPUI上有效,但在PHP上无效

来自分类Dev

在DEvC ++和Ideone上有效的代码,但在竞赛网站上无效

Related 相关文章

  1. 1

    具有动态自定义格式日期的条件格式

  2. 2

    CurrentItem在iOS上无效,但在Android上有效

  3. 3

    DelegatingHandler在Localhost上有效,但在Azure上无效

  4. 4

    CMake FIND_LIBRARY在Windows上有效,但在OS X上无效

  5. 5

    读取本地文件的Javascript在Windows上有效,但在Linux上无效

  6. 6

    使用具有自定义格式的时刻格式化日期

  7. 7

    自定义日期的DateTime.ParseExact格式

  8. 8

    Django自定义命令在命令行上有效,但在call_command上无效

  9. 9

    具有自定义格式的C#通用DateTime.ToString()

  10. 10

    C#-具有自定义日期格式的类型转换器

  11. 11

    在JQGrid中具有用于日期字段的自定义格式化程序

  12. 12

    ASP.NET/VB日期在localhost上有效,但在remoteserver上无效

  13. 13

    具有自定义格式的XML编写器

  14. 14

    具有自定义JSON格式的Ember RESTAdapter

  15. 15

    具有标记的Excel自定义格式url列

  16. 16

    具有自定义格式的XML编写器

  17. 17

    具有废纸ster格式的cAdvisor自定义指标

  18. 18

    将输入限制为仅某些字符在Chrome上有效,但在Firefox上无效

  19. 19

    UITextFieldDelegate在iOS 8上有效,但在iOS 7上无效

  20. 20

    wordpress:datepicker在小部件选项页面上有效,但在定制器上无效

  21. 21

    jQuery UI Datepicker在<input>上有效,但在<h:inputText>上无效

  22. 22

    Linux /为什么su命令在CMD上有效但在脚本上无效?

  23. 23

    来自URL的Open App在Firefox for Android上有效,但在Google Chrome上无效

  24. 24

    为什么我的C ++互操作在.Net 4.5上有效但在4上却无效

  25. 25

    SSLContext和PKCS12密钥库-在JVM上有效,但在Android上无效

  26. 26

    在WAMP本地主机上有效但在WebServer上无效的PHP代码

  27. 27

    Theos tweak在iPhone 5s上有效,但在iPad 3上无效

  28. 28

    Web Service SOAP Request在SOAPUI上有效,但在PHP上无效

  29. 29

    在DEvC ++和Ideone上有效的代码,但在竞赛网站上无效

热门标签

归档