View

300x250

파이어베이스에서 데이터를 받아올 때 시간과 날짜를 나타내는 자료형이 Timestamp였고, 플러터에서는 Datetime을 사용하고 있었다. 나는 Timestamp가 flutter(dart)의 내부 클래스이고, datetime과 timestamp가 같은 타입이라고 생각했는데, Timestamp는 Firestore 프레임워크에 포함된 타입이며 datetime으로 사용하기 위해서는 명시적으로 형변환 과정을 거쳐야 하는 것을 확인했다.

Untitled.png

검색해서 찾다보니 누군가는 Timestamp가 더 세밀한 초 (millisecond)를 표현할 수 있는 자료형이라고 했는데, 파이어베이스에서는 초 단위까지만 입력이 가능하고, DateTime 클래스의 프로퍼티에 microsecond 단위의 데이터를 넣을 수 있는 것으로 보아서는, 크게 유의미한 차이같지는 않았다.

공식문서의 DateTime의 프로퍼티

Untitled.png

또, Timestamp는 UTC(Universal Time Coordinated)를 가지기 때문에 경도에 따른 시간보정이 가능하지만 DateTime은 그렇지 않다는 이야기도 있었지만, Flutter의 Datetime 설명에는 UTC를 기반으로 정해지는 시간이라고 나와있어 요 녀석도 맞는 말은 아닌 것 같다.

Untitled.png

내가 내린 결론 : flutter와 firebase는 둘 다 독자적인 시간, 날짜 타입을 사용하고 있지만 서로 형변환을 해서 사용할 수 있게 이미 다 만들어놨다. 두 타입을 엄격하게 구분하거나 데이터 소실을 걱정하지 말고 사용해주면 될 것 같다.

320x100
Share Link
reply
반응형
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31