/// <summary> /// Binds the DateTime object. /// </summary> public Task BindModelAsync(ModelBindingContext bindingContext) { var value = bindingContext.ValueProvider.GetValue(bindingContext.ModelName); if (value.FirstValue == null && bindingContext.ModelType == typeof(DateTime?)) { bindingContext.Result = ModelBindingResult.Success(null); return(Task.CompletedTask); } DateTime dateTime; if (!DateTime.TryParse(value.FirstValue, out dateTime)) { bindingContext.ModelState.AddModelError(bindingContext.ModelName, "Invalid date/time."); bindingContext.Result = ModelBindingResult.Failed(); return(Task.CompletedTask); } bindingContext.Result = ModelBindingResult.Success(_timeZoneProvider.ToUtcTime(dateTime)); return(Task.CompletedTask); }