C# 使用C获取服务器的日期时间格式#
我有一些示例代码来获取格式,它不能正常工作C# 使用C获取服务器的日期时间格式#,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,我有一些示例代码来获取格式,它不能正常工作 string dateString, format; DateTime result; CultureInfo provider = CultureInfo.InvariantCulture; // Parse date-only value with invariant culture. dateString = System.DateTime.Now.ToString(); format = "d";
string dateString, format;
DateTime result;
CultureInfo provider = CultureInfo.InvariantCulture;
// Parse date-only value with invariant culture.
dateString = System.DateTime.Now.ToString();
format = "d";
try
{
result = DateTime.ParseExact(dateString, format, provider);
Response.Write(result.GetDateTimeFormats()[3]);
Response.Write(provider);
Response.Write(format);
}
catch (FormatException ex)
{
Response.Write(ex.Message);
}
请帮帮我?我想显示服务器的日期格式。CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern将提供当前区域性的短日期格式
此处有DateTimeFormatInfo类的更多详细信息:您可以从CultureInfo DateTimeFormat属性(DateTimeFormatInfo实例)检索格式字符串。这又具有类似ShortDatePattern和ShortTimePattern的属性,其中包含格式字符串:
protected void Page_Load(object sender, EventArgs e)
{
CultureInfo us = new CultureInfo("en-US");
string shortUsDateFormatString = us.DateTimeFormat.ShortDatePattern;
string shortUsTimeFormatString = us.DateTimeFormat.ShortTimePattern;
Response.Write(shortUsDateFormatString);
}
如果您希望日期采用您在评论中建议的
DD/MM/YYYY
格式,那么只需使用以下代码即可
如果不使用ToString方法中的第二个参数,则不会将/
作为日期分隔符,而是将当前区域性在应用程序中定义的日期分隔符设置为默认美国区域性的-
string formattedDate = System.DateTime.Now.ToString("dd/MM/yyyy",
CultureInfo.InvariantCulture);
如果您只需要使用当前区域性的日期部分,那么只需使用下面的代码即可
string formattedDate = System.DateTime.Now.ToShortDateString();
该程序执行系统日期时间格式。它是dd/mmm/yyyy格式还是其他格式,以及运行系统的cultuerInfo
if (Session["ClaimDate"] != null)
{
DateTime day;
CultureInfo ci = CultureInfo.CurrentCulture;
DateTimeFormatInfo dtfi = ci.DateTimeFormat;
string[] SystemDateTimePatterns = new string[250];
int i = 0;
foreach (string name in dtfi.GetAllDateTimePatterns('d'))
{
SystemDateTimePatterns[i] = name;
i++;
}
string[] myDateTimeFormat = { "dd-MMM-yy", "dd-MMM-yyyy" };
if (myDateTimeFormat[0].Equals(SystemDateTimePatterns[0]) || myDateTimeFormat[1].Equals(SystemDateTimePatterns[0]))
{
day = DateTime.ParseExact(Session["ClaimDate"].ToString(), "dd/MM/yyyy", null);
}
else
{
day = DateTime.Parse(Session["ClaimDate"].ToString());
}
// DateTime day = Convert.ToDateTime(Session["ClaimDate"].ToString());
ddlDay.Items.FindByValue(day.Day.ToString("00")).Selected = true;
}
else
{
ddlDay.Items.FindByValue(DateTime.Now.Day.ToString("00")).Selected = true;
}``
到底是什么问题?我想显示格式值,如“DD/MM/YYYY”,而不是值。不清楚您试图在代码段中实现什么。我认为您应该调查
CultureInfo
和DateTimeFormat
之间的关系。可能是一个很好的起点。不变量文化就是它所说的:不变量。您可以查看CultureInfo.CurrentCulture或更好的CultureInfo.DefaultThreadCurrentCulture,尽管两者都可以在代码中重写。您还应该定义“服务器区域性”的含义:对于服务器上的不同用户帐户,默认区域性可以不同。这很好。但是你知道格式值吗?非常感谢