mongoDB에서 Date type는 UTC를 표준으로 사용해서, 한국 시간을 친절하게도 변환해준다. 그래서.. 한국 시간을 넣고, 다시 받아오면 9시간 전으로 돌아간다.
필자는 flutter로 앱을 개발하고 있어서, dart에서는 이렇게 변환하면 된다
DateTime dateTime = DateTime.now().toLocal();
추가적으로, dart에서 String에 저장된 DateTime을 가져오려면,
String startTime = "2021-01-01T15:00:00.000+00:00";
DateTime dateTime = DateTime.parse(startTime);
이렇게 parse를 사용하면 된다. 알쓸신잡 느낌이다.
응용해서 사용해보면,
String startTime = "2021-02-02T15:00:00.000+00:00";
DateTime dateTime = DateTime.parse(startTime).toLocal();
이렇게 할 수 있을 것이고, dateTime을 출력하면 2021년 2월 3일 00시 00분이 나온다. 며칠동안 시간이 전날로 가서 바꿔야지 생각만 하다가 오늘에서야 찾아보고 바꿨다.
다른 블로그에서
function getCurrentDate(){
var date = new Date();
var year = date.getFullYear();
var month = date.getMonth();
var today = date.getDate();
var hours = date.getHours();
var minutes = date.getMinutes();
var seconds = date.getSeconds();
var milliseconds = date.getMilliseconds();
return new Date(Date.UTC(year, month, today, hours, minutes, seconds, milliseconds));
}
이렇게 쓸 수 있다고 했는데, 필자는 이렇게 하지 않고 toLocal로 간단하게 바꿀 수 있었다. 안된다면 저 함수를 사용해보면 될 것 같다.