我有一个字符串代表日期(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