如何在不更改格式的情况下返回 DateTime
Posted
技术标签:
【中文标题】如何在不更改格式的情况下返回 DateTime【英文标题】:How can return DateTime without change the format 【发布时间】:2016-02-05 12:13:00 【问题描述】:我有 DateTimes 列表,并且我想以某种格式获取 DateTime 以显示小时分钟秒。例如,我有来自 en-US 文化的 2015 年 12 月 22 日下午 4:32,如果我使用 bg-BG 则返回 16:32 22 Декември (意思是 12 月)2015。好吧是返回 4:32 22 Декември 2015。
这是我的简单代码。
List<DateTime> xAxises = SetListOfDateTimes();
var culture = Thread.CurrentThread.CurrentCulture;
for (int i = 1; i <= xAxises.Count; i++)
string someTime = xAxises.ElementAt(i - 1).ToString("hh:mm:ss tt", Thread.CurrentThread.CurrentCulture = culture);
string anotherTime = xAxises.ElementAt(i - 1).ToString("ddd, dd MMMM hh:mm:ss tt", Thread.CurrentThread.CurrentCulture = culture);
string thirdTime = xAxises.ElementAt(i - 1).ToString("dd MMMM yyyy", Thread.CurrentThread.CurrentCulture = culture);
string fourthTime = xAxises.ElementAt(i - 1).ToString("MMMM yyyy", Thread.CurrentThread.CurrentCulture = culture);
我真正的问题是我很少有使用 bg-BG 格式的 DateTimes 并且在someTime
中以 en-US 格式返回。当DateTime
是 21:22:30 时,someTime
是 9:22:30。我想在 21:22:30。我放了tt
,因为如果是en-US
中的文化,我的申请可能会在美国使用。
任何知道如何正确返回当前文化的 DateTime 的人。
【问题讨论】:
你能更好地解释你所看到的吗?文化只有在你打电话给.ToString(...)
时才会发挥作用,DateTime 本身并没有文化。你看过NodaTime吗?
这个问题没有多大意义。 DateTime 值没有任何格式或文化。它们是二进制值,而不是字符串。另一方面,在格式化或解析 时使用的文化是当前文化。请发布代码,显示您尝试了什么、您期望什么以及您得到了什么。您发布的内容与不传递任何文化基本相同
顺便说一句,默认情况下没有文化使用 24 小时。我怀疑问题不在于文化,而在于自定义格式
@PanagiotisKanavos - 大胆断言,我们在德国有 24 小时制。事实上,我想,12 小时制主要用于英语国家。
@EvgeniVelikovevelikov 请确保您系统的文化 是 BG 或发布更改文化的代码。如果您的文化是 BG,您将获得14:53
,例如DateTime.Now.ToString("t")
,或5.2.2016 г. 14:51:55
获得DateTime.Now.ToString()
。但是,如果您已将开发机器设置为英语语言环境,则需要输入 DateTime.Now.ToString("t",new System.Globalization.CultureInfo("bg-BG"))
【参考方案1】:
好吧,如果你说你想要 12 小时格式,你就明白了。试试HH
而不是hh
(见msdn)。
或ToLongTimeString()
。还有一些,至少是long
和short
版本的time
和`date。
顺便说一句,DateTime.Now.ToLongDateString()
给了我Freitag, 5. Februar 2016
而无需明确指定文化。
【讨论】:
【参考方案2】:如果要获取 24 小时格式的时间字符串,应在 ToString 函数中使用时间格式“HH:mm:ss”。 您可以在此处阅读有关日期和时间格式的更多信息: https://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx
【讨论】:
以上是关于如何在不更改格式的情况下返回 DateTime的主要内容,如果未能解决你的问题,请参考以下文章
如何在不更改 Vue 中的 url 的情况下返回 404 错误?