๋ณดํ†ต ๋ฐ์ดํŠธ ํƒ€์ž„ ๊ฐ’ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ ์ถ”๊ฐ€ํ• ๋•Œ


DateTime now = DateTime.Now;

awiat Collection.UpdateOnAsync( Filter(Now), Update(Now) );

์ด๋ ‡๊ฒŒ ์ €์žฅํ•  ๊ฒฝ์šฐ

MongoDB์— ์ €์žฅ๋ ๋•Œ๋Š” UTC ์‹œ๊ฐ„์œผ๋กœ ์ €์žฅ์ด ๋˜์„œ ๋ถˆ๋Ÿฌ์˜ฌ๋•Œ์˜ ๊ฐ’์€ UTC๊ฐ€ ๋˜์–ด๋ฒ„๋ฆผ


๋ฐฉ๋ฒ•์ด์•ผ ์—ฌ๋Ÿฌ๊ฐœ๊ฐ€ ์žˆ์ง€๋งŒ ์ฒ˜์Œ๋ถ€ํ„ฐ UTC๋กœ ๊ณ„์‚ฐํ•˜๊ณ  ๋กœ์ปฌ ์‹œ๊ฐ„์„ ํ‘œ์‹œํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค๋ฉดย ํด๋ผ์ด์–ธํŠธ๋“  ์„œ๋ฒ„๋“  ๋žฉํผํด๋ž˜์Šค ํ•˜๋‚˜ ๋งŒ๋“ ๋‹ค์Œ์— ๋กœ์ปฌ๋กœ ๋ณ€ํ™˜ํ•ด์ค˜์•ผํ•จ

์ด๊ฒŒ ์‹ซ์œผ๋ฉด ๊ทธ๋ƒฅ String์œผ๋กœ ์ €์žฅํ•ด


String str = now.ToString("yyyy/MM/dd hh:mm:ss") ๋กœ String์œผ๋กœ ๋ณ€ํ™˜ํ•ด์„œ

DateTime.Parsing(str) ๋กœ ํ•ด๋„ ๊ฐ€์ ธ์™€์ง€๊ธด ํ•จ


๋‹จ, DateTime์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •์—์„œ str๊ฐ’์ด ์ด์ƒํ•˜๋ฉด ์˜ˆ์™ธ๋ฅผ ๋˜์ง€๊ณ ย ์ดˆ๊ธฐํ™” ๊ฐ’์ด ๋“ค์–ด๊ฐ€์ ธ์žˆ์œผ๋ฉด ์ด์ƒํ•œ ๊ฐ’์œผ๋กœ ๋ณ€ํ™˜์‹œ์ผœ๋ฒ„๋ฆผ

๊ทธ๋ž˜์„œ ์ด๋ถ€๋ถ„๋„ ๋žฉํผ ํด๋ž˜์Šค ํ•˜๋‚˜๋งŒ๋“ค์–ด์„œ ๋ณ€ํ™˜ ํด๋ž˜์Šค ๋งŒ๋“ค์–ด์ฃผ๋Š”๊ฒŒ ์ข‹์Œ


public static string ToString(DateTime dateTime) {

ย  ย  if (dateTime.Equals(default)) {

ย  ย  ย  ย  thorw ์˜ˆ์™ธ์ฒ˜๋ฆฌ;

ย  ย  } else {

ย  ย  ย  ย  return dateTime.ToUniversalTime().ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffK");

ย  ย  }

}

public static DateTime ToDateTime(string str) {

ย  ย  DateTime dateTime = default;

ย  ย  if (str์˜ ๊ฐ’์ด ์ด์ƒํ•˜์ง€ ์•Š์œผ๋ฉด) {

ย  ย  ย  ย  dateTime = DateTimeOffset.Parse(str).UtcDateTime;

ย  ย  }

ย  ย  returnย dateTime;

}


๊ฐ„๋‹จํ•˜๊ฒŒ ์ด๋Ÿฐ ๋А๋‚Œ์œผ๋กœ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด๋‘๋ฉด ๋‚˜์ค‘์— ์ˆ˜์ •ํ• ๋•Œ ๋žฉํผ ํด๋ž˜์Šค๋งŒ ์ˆ˜์ •ํ•˜๋ฉด ํ˜ธ์ถœํ•ด์ฃผ๋Š” ๋ถ€๋ถ„์€ ๋ณ€๊ฒฝํ•  ์ผ์ด ๋งŽ์ง€ ์•Š์œผ๋‹ˆ ์ฐธ๊ณ ๋งŒ ใ…‡ใ…‡


์•„๋ฌดํŠผ MongoDB์— DateTime์ €์žฅํ•˜๋ฉด UTC์‹œ๊ฐ„์œผ๋กœ ๋ฐ”๋€Œ๋‹ˆ ์กฐ์‹ฌ