Javascript日期到C#Web服务错误
我一直在尝试将javascript日期转换为c#datetime格式,以插入到microsoft sql数据库中 这是我目前拥有的代码: Javascript端:Javascript日期到C#Web服务错误,javascript,c#,parsing,datetime,Javascript,C#,Parsing,Datetime,我一直在尝试将javascript日期转换为c#datetime格式,以插入到microsoft sql数据库中 这是我目前拥有的代码: Javascript端: var now = new Date(); now = now.toUTCString(); //time variable is in DateTime Format Console.WriteLine("Before: "+time); String timeString = Convert.ToString(tim
var now = new Date();
now = now.toUTCString();
//time variable is in DateTime Format
Console.WriteLine("Before: "+time);
String timeString = Convert.ToString(time);
Console.WriteLine("Convert: "+timeString);
DateTime newDT = DateTime.ParseExact(timeString, "yyyy-MM-dd HH:mm:ss:FFF", CultureInfo.InvariantCulture);
Console.WriteLine("After: "+newDT);
System.FormatException: String was not recognized as a valid DateTime.
at System.DateTimeParse.ParseExact(String s, String format, DateTimeFormatInfo dtfi, DateTimeStyles style)
at -classfile&method name omiited-(DateTime time)
C侧:
var now = new Date();
now = now.toUTCString();
//time variable is in DateTime Format
Console.WriteLine("Before: "+time);
String timeString = Convert.ToString(time);
Console.WriteLine("Convert: "+timeString);
DateTime newDT = DateTime.ParseExact(timeString, "yyyy-MM-dd HH:mm:ss:FFF", CultureInfo.InvariantCulture);
Console.WriteLine("After: "+newDT);
System.FormatException: String was not recognized as a valid DateTime.
at System.DateTimeParse.ParseExact(String s, String format, DateTimeFormatInfo dtfi, DateTimeStyles style)
at -classfile&method name omiited-(DateTime time)
错误消息:
var now = new Date();
now = now.toUTCString();
//time variable is in DateTime Format
Console.WriteLine("Before: "+time);
String timeString = Convert.ToString(time);
Console.WriteLine("Convert: "+timeString);
DateTime newDT = DateTime.ParseExact(timeString, "yyyy-MM-dd HH:mm:ss:FFF", CultureInfo.InvariantCulture);
Console.WriteLine("After: "+newDT);
System.FormatException: String was not recognized as a valid DateTime.
at System.DateTimeParse.ParseExact(String s, String format, DateTimeFormatInfo dtfi, DateTimeStyles style)
at -classfile&method name omiited-(DateTime time)
调试信息:
Before: 17/8/2015 11:43:48 AM
Convert: 17/8/2015 11:43:48 AM
我很确定ParseExact中的“timeString”是错误的
有没有办法解决这个问题?
我想要的结果格式如下:2015-07-27 14:24:23.853。谢谢
17/8/2015 11:43:48 AM
对照格式dd/M/yyyy HH:mm:ss tt
,并使用tostring格式
DateTime newDT = DateTime.ParseExact(timeString, "dd/M/yyyy HH:mm:ss tt", CultureInfo.InvariantCulture);
Console.WriteLine("After: "+newDT.ToString("yyyy-MM-dd HH:mm:ss.fff"));
试试这个:-
Date
对象上的toutString
函数返回RFC2822格式的值,例如“Mon,Aug 2015 05:25:53 GMT”
。这与您在C代码中指定的“yyyy-MM-dd HH:MM:ss:FFF”
格式不一致
你有两个选择。我推荐第二种
“r”
标准格式与RFC2822匹配
string s = "Mon, 17 Aug 2015 05:25:53 GMT";
DateTime dt = DateTime.ParseExact(s, "r", CultureInfo.InvariantCulture,
DateTimeStyles.AssumeUniversal | DateTimeStyles.AdjustToUniversal);
toISOString
方法获取类似于“2015-08-17T05:25:43.780Z”
的日期。然后将您的C#代码更改为:
您好,我想转换成“yyyy-MM-dd HH:MM:ss:FFF”,有什么想法吗?这是来自web请求的服务器方法吗?如果是这样,您从数据中得到了什么。
time
或timeString
应该模拟这一点吗?还是我完全没有注意到?(你的JS和C#之间有什么联系?他们如何沟通?)很不清楚你的问题是什么。听起来你已经知道如何解析JS date了(而且你的代码似乎不是最好的),你的问题可能是“如何将DateTime打印为ISO8601格式”…谢谢你的详细解释!newDT.ToString(“yyyy-MM-dd HH:MM:ss.fff”)就是解决这个问题的方法。非常感谢你!