我想要的是...... 如果文化是en-US那么
string dateFormat="MM/dd/yyyy";
string timeFormat="24.00 hrs";
如果文化是en-GB那么
string dateFormat="dd/mmyyyy";
string timeFormat="24.00 hrs";
等等其他国家..
现在我如何获取这些日期和时间格式值?标准是什么?所有国家都使用类似的日期/时间格式,哪些不使用?
好的我试过了: -
DateTime myDate = new DateTime();
string us = myDate.ToString(new CultureInfo("en-US"));
string us gets value = 1/1/0001 12:00:00 AM
现在如何从我的表格中的Dateformat列中提取“dd / mm / yyyy”和“24.00小时”......我想存储STRINGS,例如dd / mm / yyyy或mm / dd / yyyy NOT dates ..在表格的TimeFormat列中,要存储的值也是STRINGS,就像我需要存储“24:00hrs”或“12:00hrs”
我现在该怎么做?
**使用ShorTimePattern将这些值返回为
h:mm tt and HH:mm
如果我想将数据库中的值完全存储为“24:00hrs”和“12:00hrs”,我该如何使用这些值...... h:mm tt和HH:mm 哪一个是24小时格式,哪个是12小时格式?**
好吧现在还有另一个问题......我想要基于CultureInfo的有关十进制分隔符和千位分隔符的信息...那是什么属性?
答案 0 :(得分:88)
您可以从CultureInfo
DateTimeFormat
属性检索格式字符串,该属性是DateTimeFormatInfo
实例。这又包含ShortDatePattern
和ShortTimePattern
等属性,包含格式字符串:
CultureInfo us = new CultureInfo("en-US");
string shortUsDateFormatString = us.DateTimeFormat.ShortDatePattern;
string shortUsTimeFormatString = us.DateTimeFormat.ShortTimePattern;
CultureInfo uk = new CultureInfo("en-GB");
string shortUkDateFormatString = uk.DateTimeFormat.ShortDatePattern;
string shortUkTimeFormatString = uk.DateTimeFormat.ShortTimePattern;
如果您只想使用CultureInfo
格式化日期/时间,请在将IFormatter
转换为字符串时使用ToString
将其作为DateTime
传递方法:
string us = myDate.ToString(new CultureInfo("en-US"));
string uk = myDate.ToString(new CultureInfo("en-GB"));
答案 1 :(得分:14)
//尝试这可能有帮助
DateTime myDate = new DateTime();
string us = myDate.Now.Date.ToString("MM/dd/yyyy",new CultureInfo("en-US"));
或
DateTime myDate = new DateTime();
string us = myDate.Now.Date.ToString("dd/MM/yyyy",new CultureInfo("en-GB"));
答案 2 :(得分:5)
您可以查看包含特定于区域性格式的DateTimeFormat属性。
答案 3 :(得分:3)
使用像这样的CultureInfo,来自MSDN:
// Creates a CultureInfo for German in Germany.
CultureInfo ci = new CultureInfo("de-DE");
// Displays dt, formatted using the CultureInfo
Console.WriteLine(dt.ToString(ci));
答案 4 :(得分:0)
尝试为CultureInfo
和CurrentCulture
设置自定义CurrentUICulture
:
Globalization.CultureInfo customCulture = new Globalization.CultureInfo("en-US", true);
customCulture.DateTimeFormat.ShortDatePattern = "yyyy-MM-dd h:mm tt";
System.Threading.Thread.CurrentThread.CurrentCulture = customCulture;
System.Threading.Thread.CurrentThread.CurrentUICulture = customCulture;
DateTime newDate = System.Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd h:mm tt"));
答案 5 :(得分:0)
可以在网格视图中更改特定单元格的文化。
<%# DateTime.ParseExact(Eval("contractdate", "{0}"), "MM/dd/yyyy", System.Globalization.CultureInfo.InvariantCulture).ToString("dd/MM/yyyy", System.Globalization.CultureInfo.CurrentCulture) %>
有关更多详细信息,请检查链接。