2016-08-04 90 views
-1

我想將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

回答

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

小心解釋它與op的代碼有何不同 –

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

的「/」自定義格式說明表示日期分隔符, 用於區分年,月和日。從當前或指定的 文化的 DateTimeFormatInfo.DateSeparator屬性中檢索適當的 本地化日期分隔符。

MSDN

1

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

相關問題