2010-01-28 40 views
4

我有一个字符串用于显示日期时间像星期一,dd Dec YYYY hh:mm:ss。我想显示它像dd Dec YYYY。有没有简单的方法来做到这一点?格式日期在C#

回答

2

http://www.csharp-examples.net/string-format-datetime/

// create date time 2008-03-09 16:05:07.123 
DateTime dt = new DateTime(2008, 3, 9, 16, 5, 7, 123); 

String.Format("{0:y yy yyy yyyy}", dt); // "8 08 008 2008" year 
String.Format("{0:M MM MMM MMMM}", dt); // "3 03 Mar March" month 
String.Format("{0:d dd ddd dddd}", dt); // "9 09 Sun Sunday" day 
String.Format("{0:h hh H HH}",  dt); // "4 04 16 16"  hour 12/24 
String.Format("{0:m mm}",   dt); // "5 05"   minute 
String.Format("{0:s ss}",   dt); // "7 07"   second 
String.Format("{0:f ff fff ffff}", dt); // "1 12 123 1230" sec.fraction 
String.Format("{0:F FF FFF FFFF}", dt); // "1 12 123 123" without zeroes 
String.Format("{0:t tt}",   dt); // "P PM"   A.M. or P.M. 
String.Format("{0:z zz zzz}",  dt); // "-6 -06 -06:00" time zone 

参见:

Custom Date and Time Format Strings - MSDN

如果你只有字符串,只是字符串分割到一个数组中,并连接你想要的部分以另一种顺序

String str = "Mon, dd Dec YYYY hh:mm:ss"; 
String[] strArr = str.Split(" "); 
str = strArr[2] + " " + strArr[3]; 

如果日期可以改变,那么做什么张贴在他的回答

+0

由于只有一个参数,你应该叫'DateTime.ToString'。 – SLaks 2010-01-28 01:50:27

+1

他没有日期时间,他有一个字符串 – PostMan 2010-01-28 01:51:04

+0

只是注意到 – sergiogx 2010-01-28 01:54:48

1

你可以只使用串,因为它总是将是11个字符,开始在位置5

3

你可以调用DateTime类

DateTime time = DateTime.ParseExact("Mon, 28 Dec 2009 04:34:17", "ddd, dd MMM yyyy hh:mm:ss", CultureInfo.InvariantCulture); 
string output = time.ToString("dd MMM yyyy", CultureInfo.InvariantCulture); 

Here的格式化方法是名单格式字符串的选项。

2
DateTime myDateTime = DateTime.Parse(myStringContainingDate); 

myDateTime.ToString("dd MMM yyyy") 

SLaks应该做的伎俩

0
DateTime d = DateTime.Parse(yourDateString); 
Console.WriteLine(d.ToString("dd MMM YYYY")); 

全规格here