C#ASP.NET:无法将日期时间转换为字符串

C#ASP.NET:无法将日期时间转换为字符串

问题描述:

我想将datetime转换为字符串。C#ASP.NET:无法将日期时间转换为字符串

但结果现在返回为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); 
} 

感谢)

+0

看起来不错,看看:https://dotnetfiddle.net/jPFBrk –

+0

我同意@不幸运,它看起来很好。扩展版本:https://dotnetfiddle.net/jPFBrk。最终结果是'rDate'看起来像什么,并且s.S_Date是一个纯粹的日期时间,还是它做了其他的事情? –

+2

s.S_DATE有什么价值?之前.ToString(“yyyy/MM/dd”) – Mate

使用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); 
+1

小心解释它与op的代码有何不同 –

尝试:

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); 

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

MSDN

使用日期或DateTime.ToShortDateString();Date.ToString(“dd-MM-yyyy”);