Я использую ASP.NET EF и пытаюсь перенести DateTime из моей модели в мой контроллер. Моя модель имеет формат «дд / мм / гггг», и когда я переношу ее в контроллер, я хочу добавить к ней 10 часов и отправить ее на другой контроллер, чтобы использовать эту дату. Этот код работает локально, но я размещаю его на Azure, поэтому необходимо преобразовать его в часовой пояс 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),
};