我收到此错误“ 字符串未被识别为有效日期时间 ”,代码如下:
DateTimeOffSet dt=new DateTimeOffset(Convert.ToDateTime(DateTime.Now.ToString("dd/MM/yyyy hh:mm tt")));
它适用于DEV环境,但不适用于生产。
有人可以建议上面的代码有什么问题吗?
谢谢。
答案 0 :(得分:8)
Convert.ToDateTime使用有关DateTime格式的当前文化信息。 尝试这样的事情:
string format = "dd/MM/yyyy hh:mm tt";
string stringDate = DateTime.Now.ToString(format, CultureInfo.InvariantCulture);
DateTime dateTime = DateTime.ParseExact(stringDate, format, CultureInfo.InvariantCulture);
答案 1 :(得分:1)
为什么要从DateTime
转换为string
然后再转回DateTime
?
我认为这应该可行:
DateTimeOffset dt = new DateTimeOffset(DateTime.Now);
答案 2 :(得分:0)
CultureInfo必须在两台机器上都有所不同。您可能必须在转换方法中将其作为首选文化传递,例如EN-US