我有一個字符串代表日期(MySQL數據庫的日期時間),我想將其轉換爲自定義格式爲MMMM d,YYYY轉換2012年11月1日上午03時42分09秒至2012年11月1日
例如。轉換2012年11月1日上午03時42分09秒至2012年11月1日
我有一個字符串代表日期(MySQL數據庫的日期時間),我想將其轉換爲自定義格式爲MMMM d,YYYY轉換2012年11月1日上午03時42分09秒至2012年11月1日
例如。轉換2012年11月1日上午03時42分09秒至2012年11月1日
既然你想十一月月,你可以使用DateTime.ParseExact
後來格式化使用.ToString
string str = "11/1/2012 3:42:09 AM";
DateTime dt = DateTime.ParseExact(str, "MM/d/yyyy h:mm:ss tt",CultureInfo.InvariantCulture);
string formattedDateStr = dt.ToString("MMMMM d, yyyy");
編輯日期:(從我的理解,你已經擁有的@Martin Liversage
//To ignore regional settings.
string formattedDateStr = dt.ToString("MMMMM d, yyyy",CultureInfo.InvariantCulture);
Parse
它變成一個DateTime
對象,然後調用ToString
:
string myDate = "11/1/2012 3:42:09 AM";
string formatted = DateTime.Parse(myDate).ToString("MMMM d ,yyyy");
注意,如果你的機器與myDate
沒有相同的文化(例如,您有歐洲日期格式將當天放在第一位),您可以指定輸入格式以及ParseExact
:
string formatted = DateTime.ParseExact(myDate, "M/d/yyyy h:mm:ss tt", CultureInfo.InvariantCulture).ToString("MMMM d ,yyyy");
評論一個DateTime
值。將其轉換爲所需的字符串您可以使用此格式:
dateTime.ToString("MMMM d, yyyy", CultureInfo.InvariantCulture)
注意使用CultureInfo.InvariantCulture
。這確保使用英文月份名稱,因爲不變文化是基於美國文化。否則,將使用當前的文化,並可能有不同的月份名稱。
如果日期是從數據庫中檢索爲String
,而不是一個DateTime
那麼您需要首先分析字符串:
var dateTime = DateTime.ParseExact(
str,
"MM/d/yyyy h:mm:ss tt",
CultureInfo.InvariantCulture
);
試試這個 SELECT DATENAME(MM,GETDATE())+ RIGHT( CONVERT(VARCHAR(12),GETDATE(),107),9)AS [Month DD,YYYY]
@VishalSuthar in c# – Champ