DateTime在Azure服务器上重置为01/01/0001

时间:2018-05-01 20:42:22

标签: asp.net-mvc entity-framework datetime

我正在使用ASP.NET EF,并试图将我的模型中的DateTime输入到我的控制器中。我的模型格式为&#; dd / mm / yyyy'当我把它带进控制器时,我想给它增加10个小时并将它发送到另一个控制器来使用这个日期。此代码在本地工作,但我在Azure上托管,因此需要将其从NZ时区转换为UTC时区。

我收到错误:

  

ArgumentOutOfRangeException:添加或减去的值会导致无法表示的DateTime。

我相信这是因为价值将自己设置回01/01/0001,但我可以在本地运行,而且效果很好。

查看代码:

@using (Html.BeginForm())
{
    @Html.HiddenFor(x => x.SiteID)
    @Html.TextBoxFor(x => x.Date, DateTime.Now.ToString("dd/MM/yyyy"), new { 
    @class = "form-control" })
    <button type="submit" name="type" value="invoice" class="btn btn-primary" 
    onclick="document.body.style.cursor='wait'">Generate Invoices</button>
}

控制器代码(viewModel传入日期):

public ActionResult Run(RunViewModel viewModel, string type)
    {
        var logger = new MemoryLogger();

        if (type == "invoice")
        {
            var date = viewModel.Date.AddHours(10);
            var xeroCommandParameters = new XeroCommandParameters
            {
                Logger = logger,
                LocalDateTime = TimeZoneInfo.ConvertTimeToUtc(date, NewZealand),
            };

0 个答案:

没有答案