javascript - 将 javascript 变量 “11:00 AM” 转换为 c# 等效项,其中 SQL 为时间格式

标签 javascript c# asp.net asp.net-mvc asp.net-web-api

我有以下模型属性

public class CallLog
{
      public int CallLogID { get; set; }
      public TimeSpan endTime { get; set; }
      public TimeSpan startTime { get; set; }
}

我的 api 调用是“/api/CallLog/AddCallLog”。其中 CallLog 数据包含

startTime = "11:00 AM"
endTime = "11:30 AM"

我的 api Controller 是

[HttpPost]
public IHttpActionResult AddCallLog(CallLog callLog)
{

    if (!ModelState.IsValid)
    {
        return Json(new
        {
            success = false,
            errors = ModelState.Keys.SelectMany(k => ModelState[k].Errors)
                .Select(m => m.ErrorMessage).ToArray()
        });
    }

    CallLog.InsertCallLog(callLog);

    return CreatedAtRoute("DefaultApi", new { id = callLog.CallLogID }, callLog);
}

它给了我以下错误

{"Error converting value \"11:00 AM\" to type 'System.TimeSpan'. Path 'startTime'....}
{"Error converting value \"11:30 AM\" to type 'System.TimeSpan'. Path 'endTime'....}

我的问题是像“11:00 AM”这样的时间我需要什么数据类型。请记住我在数据库中的 startTime 和 endTime 数据类型是“时间”。

最佳答案

根据错误的说法,您可能必须提供从 string 类型 "11:30 AM"TimeSpan 的正确转换类型。您可以通过参数将 DateTime.ParseExact 与转换模式一起使用,如下所示:

string pattern = "HH:mm 'AM'";
TimeSpan yourTimeSpan = DateTime.ParseExact(
                                      "11:30 AM",
                                      pattern,
                                      CultureInfo.InvariantCulture
                                      ).TimeOfDay;

它将为您提供值为 11:30:00 的时间跨度

因此,您可以将代码修改为如下内容:

private string _endTime;
public TimeSpan endTime 
{
    get
    {
        return DateTime.ParseExact(
                                  _endTime,
                                  "HH:mm 'AM'",
                                  CultureInfo.InvariantCulture
                                  ).TimeOfDay;
    }            
}

关于javascript - 将 javascript 变量 “11:00 AM” 转换为 c# 等效项,其中 SQL 为时间格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32711368/

相关文章:

javascript - 如何在没有 git 的情况下创建 react 应用程序(跳过 git)?

javascript - 功能测试数组是否为几何不起作用

c# - 按下提交按钮后如何重定向到下一页?

c# - 使用委托(delegate)创建表单但从未完成的异步方法

asp.net - 字符串比较中使用哪些文化信息?

选择菜单中的 Javascript OR 操作数不起作用

javascript - 异步上传(HTTP POST)到 Amazon S3 : why aren't I getting the right callbacks?

c# - 两次调用同一个 C# 属性是不是不好的编程习惯?

c# - Asp.Net 商店产品属性(尺寸、数量)

javascript - 如何从 ASP :NET? 将数组传递给 jQuery