如何在asp.net c#中将日期字符串"dd/MM/yyyy"格式转换为"MM/dd/yyyy"?

6
我想在C#中将一个字符串日期格式“dd/MM/yyyy”转换为“MM/dd/yyyy”。 示例
 string d ="25/02/2012";  i want to convert into 02/25/2012

可能是重复问题:http://stackoverflow.com/questions/6947423/how-to-format-date-in-asp-net - Ahsan Khurshid
4个回答

16
你可以使用 DateTime.ParseExact 将其解析为 DateTime 对象,然后使用 ToString("MM/dd/yyyy") 来显示 DateTime 对象。
string d ="25/02/2012";
DateTime dt = DateTime.ParseExact(d, "d/M/yyyy", CultureInfo.InvariantCulture);
// for both "1/1/2000" or "25/1/2000" formats
string newString = dt.ToString("MM/dd/yyyy");

请确保在顶部包含using System.Globalization;


IFormatProvider provider = new System.Globalization.CultureInfo("en-GB", true); DateTime t = DateTime.Parse(cell.Text, provider, System.Globalization.DateTimeStyles.NoCurrentDateDefault); - sejal patel
@Habib,如果我有两种字符串类型,如“1/1/2000”或“25/1/2000”,那么我应该使用什么? - sejal patel
@sejalpatel,然后 DateTime.ParseExact(d, "d/M/yyyy", CultureInfo.InvariantCulture); 这样做就可以了,也可以检查编辑过的答案。 - Habib
当我使用以下代码时出现错误: DateTime dt = DateTime.ParseExact(cell.Text, "d/M/yyyy", CultureInfo.InvariantCulture); 当我使用日期“25/02/2000”时会出现错误,但是使用日期“1/1/2000”时不会出现错误。 - sejal patel
@sejalpatel,不需要再检查了,我已经检查过这段代码: string d ="25/02/2000"; DateTime dt = DateTime.ParseExact(d, "d/M/yyyy", CultureInfo.InvariantCulture); - Habib
显示剩余2条评论

2
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
String.Format("{0:M/d/yyyy}", dt);            // "3/9/2008"
String.Format("{0:MM/dd/yyyy}", dt);          // "03/09/2008"
String.Format("{0:ddd, MMM d, yyyy}", dt);    // "Sun, Mar 9, 2008"
String.Format("{0:dddd, MMMM d, yyyy}", dt);  // "Sunday, March 9, 2008"
String.Format("{0:MM/dd/yy}", dt);            // "03/09/08"
String.Format("{0:MM/dd/yyyy}", dt);          // "03/09/2008"

0

试试这个:

string d ="25/02/2012";  
DateTime dtReturn = DateTime.MinValue;

DateTime.TryParseExact(d , "dd/MM/yyyy", dateFormat,
DateTimeStyles.AllowWhiteSpaces, out dtReturn)

将返回“2012年2月25日上午12:00:00”


0
DateTime dt = DateTime.ParseExact(your string date, "d/M/yyyy",
                                  CultureInfo.InvariantCulture);
// for both "1/1/2000" or "25/1/2000" formats
string ndt = dt.ToString("MM/dd/yyyy");

还要使用这个命名空间:using System.Globalization;


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接