2013-10-17 79 views
1

我一直在尝试许多不同的解决方案,但没有发现任何作用。我想将字符串转换为DD/MM/YYYY将字符串转换为日期时间格式无效System.Datetime

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的错误。请求帮助!

+0

提示:我很确定'19'不是一个月。 – Rotem

+0

@Rotem ExpiryTime格式为M/dd/yyyy hh:mm:ss AM | PM –

+0

正确的,会对其进行编辑。但我想要做的是将其转换为格式dd/MM/yyyy。那么我怎么能做到这一点?谢谢〜 – coffeeak

回答

2

使用CultureInfo.InvariantCulture避免像无效日期分隔文化问题,而此格式:

M/dd/yyyy hh:mm:ss tt 

大写M是几个月,dd的日子,yyyy四位数年。小写hh是12h格式的小时数(与AM/PM结合需要),mm分钟,ss秒和tt AM/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

然后以同样的方式使用ToStringCultureInfo.InvariantCulture力量/作为日期分隔符,否则将被替换与您目前的文化的日期分隔符:

string result = dt.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture); 
0

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

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

注意:还请检查您的本地系统日期时间格式。如果它与使用的不匹配,你仍然可能会遇到同样的例外。

相关问题