Javascript 日期到 C# Web 服务错误

标签 javascript c# parsing datetime

我一直在尝试将 JavaScript 日期转换为 C# 日期时间格式以插入到 Microsoft SQL 数据库中。

这是我目前拥有的代码:

Javascript 方面:

var now     = new Date();
now =  now.toUTCString();

C# 方面:

//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 。谢谢!

最佳答案

Date 对象上的 toUTCString 函数返回 RFC2822 格式的值,例如 “Mon, 17 Aug 2015 05:25:53 GMT”。这与您在 C# 代码中指定的 “yyyy-MM-dd HH:mm:ss:FFF” 格式不一致。

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

  1. 更改 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);
    
  2. 双面使用更清晰的格式。对于大多数事情,我推荐使用 ISO8601 格式。在 JavaScript 中,使用 toISOString 方法获取类似于 "2015-08-17T05:25:43.780Z" 的日期。然后将您的 C# 代码更改为:

    var s = "2015-08-17T05:25:43.780Z";
    DateTime dt = DateTime.ParseExact(s, "yyyy-MM-dd'T'HH:mm:ss.FFFZ",
                      CultureInfo.InvariantCulture,  DateTimeStyles.RoundtripKind);
    

关于Javascript 日期到 C# Web 服务错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32042554/

相关文章:

javascript - 如何在 PDF 中使用 JavaScript 来识别用户的操作系统

android - 从交易短信中获取商家名称 - Android

PHP重命名代码中的所有变量

c# - 如何更改 iOS 和 Android 步进器的颜色?

c# - 将运算符传递给存储过程

c# - 如何将身份验证添加到起始页

regex - 明智地解析科学记数法?

javascript - 正则表达式瑞典字母表和整个单词

javascript - 获取输入值并生成多个文本区域并在那里设置值

javascript - 嵌套 url,但具有带有 ui-router 的独立模板