我一直在尝试这里找到的许多不同的解决方案,但都没有效果。我想将字符串转换为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错误。请求帮助!
答案 0 :(得分:2)
使用CultureInfo.InvariantCulture
来避免文化问题,例如无效的日期分隔符和此格式:
M/dd/yyyy hh:mm:ss tt
大写M
是几个月,dd
是天,yyyy
四位数年。小写hh
是12小时格式的小时(与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
的格式
然后以相同的方式使用ToString
,CultureInfo.InvariantCulture
强制/
作为日期分隔符,不会将其替换为您当前的文化的日期分隔符:
string result = dt.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);
答案 1 :(得分:0)
如果你需要它作为字符串,那么你应该尝试这个
var dt = string.Format("{0:dd/MM/yyyy}",DateTime.Now);
注意:还要检查本地系统日期时间格式。如果它与使用的不匹配,您仍可能遇到相同的异常..