【发布时间】:2015-11-02 21:19:38
【问题描述】:
if (!IsPostBack && !Page.IsCallback)
{
double OffsetHrs = GetTimeZoneOffsetFromCookie();
string dateFormat = ServiceManager.LocalizationService.GetString("AppHeaderTop", "DateFormat", "g");
CultureSelected CultureSelected = GetCultureSelected();
ASPxLabelCurrentTime.Text = DateTime.Now.ToUniversalTime().AddHours(-OffsetHrs).ToString(dateFormat);
if (CultureSelected.CultureCode != "en-US")
{
DateTimeFormatInfo usDtfi = new CultureInfo("en-US", false).DateTimeFormat;
DateTimeFormatInfo currentDtfi = new CultureInfo(CultureSelected.CultureCode, false).DateTimeFormat;
ASPxLabelCurrentTime.Text = Convert.ToDateTime(ASPxLabelCurrentTime.Text, usDtfi).ToString(currentDtfi.ShortDatePattern); //what can i Use here ?
}
假设ASPxLabelCurrentTime.Text 的输出
对于en-US,文化是11/2/2015 4:14 PM (70)
如果我选择特定文化,我希望此日期时间 11/2/2015 4:14 PM (70) 以该特定文化格式显示。
【问题讨论】:
-
避免使用
Convert.ToDateTime,改用DateTime.ParseExact。 -
如果我使用 DateTime.ParseExact 如何代表不同文化的“格式”。使用不同文化的语法是什么??
-
@virtualreality 这取决于字符串和区域性设置。例如,文化必须是
PM在它的PMDesignator属性中。