1

我一直在尝试在这里找到许多不同的解决方案,但没有一个有效。我想把字符串转换成dd/MM/yyyy的格式

editField["ExpiryTime"] = "5/19/2011 12:00:00 AM";
DateTime dt = DateTime.ParseExact(editField["ExpiryTime"].ToString(), "dd/MM/yyyy HH:mm:ss tt",  CultureInfo.InvariantCulture);

但我总是收到无效 System.DateTime 的错误。请求帮助!

4

2 回答 2

2

用于CultureInfo.InvariantCulture避免文化问题,如无效的日期分隔符和此格式:

M/dd/yyyy hh:mm:ss tt

大写M是月份,dd是天,yyyy四位数的年份。小写hh是 12 小时格式的小时(需要与 AM/PM 结合使用),mm是分钟、ss秒和ttAM/PM 指示符。

string input = editField["ExpiryTime"].ToString(); // "5/19/2011 12:00:00 AM"
DateTime dt = DateTime.ParseExact(input, "M/dd/yyyy hh:mm:ss tt",  CultureInfo.InvariantCulture);

我想把字符串转换成dd/MM/yyyy的格式

然后ToString以同样的方式使用CultureInfo.InvariantCultureforce/作为日期分隔符,如果没有它将替换为您当前区域性的日期分隔符:

string result = dt.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);
于 2013-10-17T08:01:53.047 回答
0

如果你需要它作为字符串,那么你应该试试这个

var dt = string.Format("{0:dd/MM/yyyy}",DateTime.Now);

注意:还要检查您的本地系统日期时间格式。如果它与使用的不匹配,您仍然可能会遇到相同的异常..

于 2013-10-17T08:03:08.477 回答