Сохранение смещения даты и времени в базе данных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

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