如何根据文化信息获取日期和时间格式?

Ser*_*ity 50 c# asp.net

我想要的是......如果文化是en-US那么

string dateFormat="MM/dd/yyyy"; 
string timeFormat="24.00 hrs";
Run Code Online (Sandbox Code Playgroud)

如果文化是en-GB那么

string dateFormat="dd/mmyyyy"; 
string timeFormat="24.00 hrs";
Run Code Online (Sandbox Code Playgroud)

等等其他国家..

现在我如何获得这些日期和时间格式值?标准是什么?所有国家都使用类似的日期/时间格式,哪些不使用?

好的我试过这个: -

 DateTime myDate = new DateTime();
   string us = myDate.ToString(new CultureInfo("en-US"));
Run Code Online (Sandbox Code Playgroud)

string us得到值= 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
Run Code Online (Sandbox Code Playgroud)

如果我想将数据库中的值完全存储为"24:00hrs"和"12:00hrs",我该如何使用这些值...... h:mm tt和HH:mm哪一个是24小时格式,哪个是12小时格式?**

好了,现在还有另一个问题......我想要有关Decimal Separator和Thousand Separator的信息也基于CultureInfo ...那个属性是什么?

Ode*_*ded 92

您可以从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;
Run Code Online (Sandbox Code Playgroud)

如果您只是想使用CultureInfo它格式化日期/时间,请将其作为IFormatter转换DateTime为字符串时传入,使用以下ToString方法:

string us = myDate.ToString(new CultureInfo("en-US"));
string uk = myDate.ToString(new CultureInfo("en-GB"));
Run Code Online (Sandbox Code Playgroud)

  • 哎哟......那很粗鲁:( (11认同)
  • @serenity:在CultureInfo(http://msdn.microsoft.com/zh-cn/library/system.globalization.cultureinfo.aspx)上查看MSDN文档-该结构还具有具有您所需要内容的`NumberFormat`属性重新寻找 (2认同)
  • @Serenity-马克对那些不愿看文档的人感到沮丧。实际上,该首字母缩写词在整个Internet上使用很多。他是对的-您应该首先在文档中查找内容。询问您是否无法理解或查找信息。 (2认同)
  • @Oded ::我是新手所有这一切,所以仍然学习什么引用和所有..所以..我希望这个网站更新手友好..谢谢所有的帮助 (2认同)
  • @Serenity - "F"字在任何文化中都是粗鲁的.然而,它是首字母缩略词的一部分,大多数人甚至不再考虑`F`.也许马克觉得他需要粗鲁才能引起你的注意. (2认同)

小智 17

//尝试这可能有所帮助

DateTime myDate = new DateTime();
   string us = myDate.Now.Date.ToString("MM/dd/yyyy",new CultureInfo("en-US"));
Run Code Online (Sandbox Code Playgroud)

要么

 DateTime myDate = new DateTime();
        string us = myDate.Now.Date.ToString("dd/MM/yyyy",new CultureInfo("en-GB"));
Run Code Online (Sandbox Code Playgroud)


Dar*_*rov 5

您可以查看包含特定于区域性的格式的DateTimeFormat属性.