DateTime.Now는 현재 시스템 날짜와 시간을 가져오는 함수이다. 로컬 컴퓨터에서 DateTime.Now를 호출하면 로컬 컴퓨터의 현재 시간이 반환되지만, Azure 서버에서 호출하면 Azure 서버가 위치한 시간대의 현재 시간이 반환되어다. 게시 후와 게시 전의 DateTime.Now 값이 달라지게된다.
게시 전과 후

이러한 문제는 UTC 시간을 사용함으로써 해결할 수 있다.
DateTime.UtcNow를 사용하여 UTC 시간을 가져올 수 있으며, TimeZoneInfo.ConvertTimeFromUtc 함수를 사용하여 로컬 시간으로 변환할 수 있다.
[HttpPost]
public async Task<IActionResult> Details(int id, [Bind("APOD,New_Comment,Comment")] APODAndCommentViewModel commentModel)
{
DateTime utcNow = DateTime.UtcNow;
TimeZoneInfo kst = TimeZoneInfo.FindSystemTimeZoneById("Korea Standard Time");
DateTime kstNow = TimeZoneInfo.ConvertTimeFromUtc(utcNow, kst);
commentModel.New_Comment.Date = kstNow;
commentModel.New_Comment.PostId = id;
_context.CommentModel.Add(commentModel.New_Comment);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Details), new { id = commentModel.New_Comment.PostId });
}
실행결과

잘 작동한다
'기타' 카테고리의 다른 글
| [Azure/gabia/APOD] APOD 도메인 등록 (0) | 2023.06.17 |
|---|---|
| [Javascript/APOD] 자바스크립트 Uncaught ReferenceError (0) | 2023.04.23 |
| [ASP.NET Core/APOD] img의 src 속성이 이미지가 아닌 비디오일 경우 iframe의 src 속성으로 비디오를 출력하는 기능 구현 (0) | 2023.04.19 |
| [군대] 군전역 혹은 군휴가때 개발할 프로젝트 기록 (0) | 2023.04.18 |
| [ASP.NET Core/APOD] 여러날짜의 apod 정보를 가져와서 한번에 db에 저장하기 (feat. DB용량 안습) (0) | 2023.04.14 |