C#ASP.NET:无法将datetime转换为字符串

时间:2016-08-04 03:09:31

标签: c# asp.net datetime cultureinfo iformatprovider

我想将datetime转换为字符串。

但结果现在返回04 August, 0016,这不是我需要的。

我希望结果为04 August, 2016

C#代码:

DataTable dtGroupCurr = new DataTable();
dtGroupCurr = sourceGroupCurr.Tables[0];

var groupedCurr = (from dt2 in dtGroupCurr.AsEnumerable()
    select new
    {
         S_DATE = dt2.Field<DateTime>("S_DATE"),
         BANK_CODE = dt2.Field<string>("BANK_CODE"),
         BANK_NAME = dt2.Field<string>("BANK_NAME")
    }).Distinct().OrderBy(x => x.S_DATE);

foreach (var s in groupedCurr)
{
     string rDate = s.S_DATE.ToString("yyyy/MM/dd");
     IFormatProvider culture = new CultureInfo("en-US", true);
     DateTime date = DateTime.Parse(rDate, culture);
     string sDate = date.ToString("dd MMMM, yyyy", CultureInfo.InvariantCulture);
}

提前致谢;)

3 个答案:

答案 0 :(得分:1)

尝试:

 string sDate = s.S_DATE.ToString("dd MMMM, yyyy", new CultureInfo("en-US", true));

string rDate = s.S_DATE.ToString("yyyy/MM/dd",  CultureInfo.InvariantCulture); // To avoid override 
IFormatProvider culture = new CultureInfo("en-US", true);
DateTime date = DateTime.Parse(rDate, culture);
string sDate = date.ToString("dd MMMM, yyyy", CultureInfo.InvariantCulture);
  

&#34; /&#34;自定义格式说明符表示日期分隔符   用于区分年,月和日。适当的   从中检索本地化日期分隔符   当前或指定的DateTimeFormatInfo.DateSeparator属性   培养

MSDN

答案 1 :(得分:0)

使用DateTime.ParseExact方法并指定如下格式:

string rDate = s.S_DATE.ToString("yyyy/MM/dd");
IFormatProvider culture = new CultureInfo("en-US", true);
DateTime date = DateTime.ParseExact(rDate, "yyyy/MM/dd", culture);
string sDate = date.ToString("dd MMMM, yyyy", CultureInfo.InvariantCulture);

答案 2 :(得分:0)

使用日期或 DateTime.ToShortDateString(); 要么 的 Date.ToString(&#34; DD-MM-YYYY&#34);