Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript日期到C#Web服务错误_Javascript_C#_Parsing_Datetime - Fatal编程技术网

Javascript日期到C#Web服务错误

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

我一直在尝试将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(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”
格式不一致

你有两个选择。我推荐第二种

  • 更改C#代码以匹配传递的格式。
    “r”
    标准格式与RFC2822匹配

    string s = "Mon, 17 Aug 2015 05:25:53 GMT";
    DateTime dt = DateTime.ParseExact(s, "r", CultureInfo.InvariantCulture,
                      DateTimeStyles.AssumeUniversal | DateTimeStyles.AdjustToUniversal);
    
  • 两边使用更清晰的格式。大多数情况下,我建议采用ISO8601格式。在JavaScript中,使用
    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”)就是解决这个问题的方法。非常感谢你!