我有DateTimes的列表,我想以某种格式获取DateTime以显示小时分钟秒。例如,我有2015年12月22日4:32 PM来自en-US的文化,如果我使用bg-BG,那么返回16:32 22Декември(即平均12月)2015.好的是返回2015年12月4日32:12。如何返回DateTime而不更改格式
这是我的简单代码。
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);
}
我真的问题是,我有几个DateTime是否与BG-BG格式和someTime
是返回的en-US格式。当DateTime
是21:22:30 someTime
告诉我9:22:30。我想成为21:22:30。因为如果是en-US
的文化所以能把我的申请用在美国的话,所以把tt
。
任何人都知道如何正确返回当前文化的DateTime。
您能更好地解释您所看到的内容吗?文化只有在你调用'.ToString(...)'时才会发挥作用,DateTime本身并没有文化本身。你看过[NodaTime](http://nodatime.org/)吗? –
这个问题没有多大意义。日期时间值*没有任何格式或文化*。它们是二进制值,而不是字符串。另一方面合成或解析**所使用的文化是当前的文化。请发布代码,显示您尝试过的内容,您的期望以及获得的内容。你发布的内容基本上与*不相同*不传递任何文化 –
顺便说一句,没有文化默认使用24小时。我怀疑这个问题不是关于文化,而是自定义格式 –