gpt4 book ai didi

c# - 如何使 DateTime 独立于当前文化?

转载 作者:太空狗 更新时间:2023-10-29 22:20:30 25 4
gpt4 key购买 nike

我尝试将日期时间转换为字符串并返回,但它适用于所有文化。

我基本上有一个文本框 (tbDateTime) 和一个标签 (lbDateTime)。标签告诉用户,软件期望以哪种格式输入 tbDateTime。文本框的输入将用于 MySQL 命令。

目前它是这样工作的:

lbDateTime.Text = "DD.MM.YYYY hh:mm:ss";   // I live in germany
DateTime date = Convert.ToDateTime(tbDateTime.Text);
String filter = date.ToString("yyyy-MM-dd HH:mm:ss");

现在我的问题:

  • 是否可以根据当前文化确定 lbDateTime.Text 的格式字符串?
  • Convert.ToDateTime 函数使用哪种格式?

我希望你能帮助我。我这里实际上没有电脑来测试不同的文化,所以我很害怕我做错了什么。

最佳答案

您可以使用 DateTime.ParseDateTime.ParseExact 方法,而不是使用 Convert.ToDateTime 方法。两者都允许您传递一种文化,告诉您您希望如何格式化日期。

DateTime.ParseExact 方法还允许您指定所需的格式,因此您可以使用此方法或多或少地解析任何格式。

编辑:
关于 Convert.ToDateTime。文档说解析时使用当前文化:http://msdn.microsoft.com/en-us/library/xhz1w05e.aspx

可以使用 System.Threading.Thread.CurrentThread.CurrentCulture 属性找到当前文化。

编辑2:
哦。如果您不确定给定的格式是否无效,您可能还想使用 DateTime.TryParseDateTime.TryParseExact

编辑3:
这里有很多编辑...我看到您想确定与用户输入的日期相匹配的区域性字符串。没有保证在这里工作的通用解决方案。例如,假设用户输入了日期 01.02.11。无法确定此日期是日.月.年还是月.日.年或年.月.日等等。

您能做的最好的事情就是拥有一个预期输入文化的列表,并从最有可能的文化开始,并尝试使用它来解析日期。如果失败,您可以尝试第二个最有可能的等等......

但这确实不推荐。为用户提供预期的格式,或者更好的方法是使用日期输入框,以确保您以适当的格式接收所选日期。

关于c# - 如何使 DateTime 独立于当前文化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5893937/

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