У меня есть серверная часть, написанная поверх node.js, я использую TypeORM в качестве ORM и Azure SQL базу данных для хранения моих данных. Когда я вызываю функции ORM create () и save (), я передаю правильную дату и время, как показано ниже. Но когда я запрашиваю вставленные данные на сервере, часовой пояс сместился с -03: 00 на +00: 00. Возможно, это нормальное поведение, поскольку я новичок в работе с датами.
Это код, в котором я вызываю create () в:
class CreateAppointmentsService {
public async execute({ provider, date }: RequestDTO): Promise<Appointment> {
const appointmentsRepository = getCustomRepository(AppointmentsRepository);
const roundDate = startOfHour(date);
const foundAppointment = await appointmentsRepository.findByDate(roundDate);
if (foundAppointment) {
throw Error('This date and time already has a booking.');
}
const appointment = appointmentsRepository.create({
provider,
date: roundDate,
});
await appointmentsRepository.save(appointment);
return appointment;
}
}
Это мой отладочная информация, показывающая дату и время в ожидаемом часовом поясе.
Это данные в базе данных. Тип поля - datetimeoffset , а время сервера - установлен на UT C (+00: 00).
Заранее спасибо! =)
[РЕДАКТИРОВАТЬ]: Объяснение лучше: время, которое я опубликовал в базе данных, округлено до 20:00 -03: 00 (Америка / Сан-Паулу / Бразилиа). Если вы посмотрите столбец created_at, время обновится до UT C, но в столбце «данные» только часовой пояс установлен на +00: 00, время осталось 20:00.