Сохранение смещения даты и времени в базе данныхC#

Место общения программистов C#
Ответить
Anonymous
 Сохранение смещения даты и времени в базе данных

Сообщение Anonymous »

В настоящее время у меня возникла проблема с сохранением времени UTC. У меня есть приложение, в котором вы можете указать таймер для задания, а затем он сохраняется в базе данных. Однако у меня возникла следующая проблема:
Электронное письмо сохраняется этим методом:

Код: Выделить всё

public async Task AddEmail(Email model)
{
using var context = _contextFactory.CreateDbContext();

model.ScheduledDate = model.ScheduledDate.ToUniversalTime();

try
{
await context.Emails.AddAsync(model);
await context.SaveChangesAsync();

return model.Id;
}
catch (Exception)
{
return 0;
}
}

public class Email
{
public int Id { get; set; }

public string Title { get; set; }

public string Subject { get; set; }

public string BodyHtml { get; set; }

[Column(TypeName = “timestamp with time zone”)]
public DateTimeOffset ScheduledDate { get; set; }

public EmailStatus Status { get; set; }

public string SenderEmail { get; set; }

public List EmailRecipients { get; set; } = [];
}
В следующей строке во время отладки я обнаружил, что значение ScheduledDate — «2024-10-16 13:19:47.000 +0200», что на данный момент является правильным. Но прежде чем сохранить его, я хочу нормализовать значение до UTC. Это также работает, потому что я могу прочитать значение «2024-10-16 11:19:47.000 +0000» из модели непосредственно перед сохранением, и это правильно.
Однако, когда я смотрю в базе данных впоследствии значение не нормализуется по UTC, чего я не понимаю, поскольку мне удалось проверить правильное значение непосредственно перед сохранением во время отладки, и оно все равно было правильным. В чем проблема?
Конечная цель состоит в том, чтобы нормализованное время UTC хранилось в базе данных, чтобы приложение также работало на моем сервере, который расположен в другом месте, и я поэтому можно также работать с таймером, передавая часовые пояса.

Подробнее здесь: https://stackoverflow.com/questions/790 ... n-database
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»