如何根据文化信息获取日期和时间格式?
我要的是.. 如果文化为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"));
字符串我们得值= 1/1/0001 12:00:00 AM
现在我如何提取“DD/MM/YYYY “和”24.00小时“出于此...在我的表格中的Dateformat列中...我想存储字符串,例如dd/mm/yyyy或mm/dd/yyyy NOT日期..在我的TimeFormat列中表中,要存储的值也是STRINGS,就像我需要存储“24:00hrs”或“12:00hrs”
我现在怎么做?
**使用ShorTimePattern返回这些值作为
h:mm tt and HH:mm
如果我想在我的数据库存储值完全按照“24:00hrs”和“12:00hrs”,我怎么使用这些值。 .H:毫米TT和HH:毫米 哪一个是24小时制和12小时格式**
确定现在还有另外一个问题太...我想了解小数分隔符和千位分隔符的信息也基于CultureInfo ...这是什么财产?
您可以从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
格式化日期/时间,在转换DateTime
为字符串时把它作为你的IFormatter
,使用ToString
方法:
string us = myDate.ToString(new CultureInfo("en-US"));
string uk = myDate.ToString(new CultureInfo("en-GB"));
你可以看看它包含了特定的文化格式DateTimeFormat财产。上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));
更多信息:
//尝试这可能有助于
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"));
尝试设置自定义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"));
您能给链接到一些例子或什么?从来没有与IFormatter合作过..thnx – Serenity 2010-12-04 11:17:56
@Serenity - 所有`CultureInfo`s实现`IFormatter`。回答更新了例子。 – Oded 2010-12-04 11:18:57
Plz检查更新在我的问题... thnx – Serenity 2010-12-04 11:45:38