如何在不更改格式的情况下返回DateTime

时间:2016-02-05 12:13:01

标签: c# .net datetime culture

我有DateTimes列表,我想以显示小时分钟秒的某种格式获取DateTime。例如我2015年12月22日下午4:32来自en-US文化,如果我使用bg-BG然后返回16:3222Декември(平均12月)2015.那么回归4:3222Декември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格式的日期时间很少,someTime中的日期时间以en-US格式返回。当DateTime是21:22:30时,someTime会告诉我9:22:30。我想成为21:22:30。我提出了tt,因为如果en-US中有文化,我的申请可能会在美国使用。

任何知道如何正确返回当前文化的DateTime的人。

2 个答案:

答案 0 :(得分:2)

好吧,如果你说你想要12小时格式,你就明白了。请尝试HH而不是hh(请参阅msdn)。

ToLongTimeString()。还有一些longshort版本的time和`date,至少。

BTW,DateTime.Now.ToLongDateString()给了我Freitag, 5. Februar 2016,而无需明确指定文化。

答案 1 :(得分:0)

如果您想以24小时格式获取时间字符串,则应使用时间格式&#34; HH:mm:ss&#34;在ToString函数中。 您可以在此处阅读有关日期和时间格式的更多信息 https://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx