Closed junhyungmoon closed 3 years ago
새 버전을 설치하기 전까지의 기록이 반영이 안되는듯 합니다. 새버전 설치후의 기록은 모아보기에 나와요
놀랍게도 새버전 설치후의 기록도 앱을 아예 껐다가 다시 접속하면 반영이 안된채로 0으로 표기됩니다ㅜ
모아정원에선 시간을 저장하는 자료형으로
string
과 TimeHandler
의 내부 클래스 DateTimeStamp
를 사용합니다.
두 시간을 비교 할 때, string
과 string
, 또는 DateTimeStamp
와 DateTimStamp
는
서로 비교하는 연산자가 있어 쉽게 비교가 가능하지만,
string
과 DateTimeStamp
를 비교할 땐 한 쪽을 다른 한쪽으로 바꿔줘야 합니다.
DateTimeStamp
는 ToString()
또는 ToDateString()
함수로 string
으로 바꿀 수 있고,
string
은 new DateTimeStamp(string str)
과 같은 생성자로 DateTimeStamp
로 바꿀 수 있습니다.
여기서 문제가 되는 부분은, 모아 정원내에서 string
과 DateTimeStamp
를 비교하기 위해
DateTimeStamp
를 string
으로 바꾸는 과정입니다.
기존의 ToString()
, ToDateString()
함수는 아래와 같습니다.
override public string ToString() {
return Years + "-" + Months + "-" + Days + " " +
Hours + ":" + Minutes + ":" + Seconds;
}
public string ToDateString() {
return Years + "-" + Months + "-" + Days;
}
보면 단순히 int
형 변수들을 string
으로 묶고 있기 때문에,
2021년 8월 25일의 ToDateString()
결과는 2021-8-25
입니다.
하지만 DB에서 전달되는 string
은 #85 [Question] 데이터 timestamp sorting 이슈 에서 변경되어
2021-08-25
으로 읽히기 때문에,
두 string
이 다르다고 판단, 결과값이 하나도 없다고 판단하는 현상입니다.
해결하기 위해 ToString()
과 ToDateString()
을 #85 와 같이 고쳐두었습니다.
override public string ToString() {
return Years + "-" + (Months/10) + (Months%10) + "-" + (Days/10) + (Days%10) + " " +
(Hours/10) + (Hours%10) + ":" + (Minutes/10) + (Minutes%10) + ":" + (Seconds/10) + ( Seconds % 10 );
}
public string ToDateString() {
return Years + "-" + ( Months / 10 ) + ( Months % 10 ) + "-" + ( Days / 10 ) + ( Days % 10 );
}
미국 박사님들께 APK 보내드리려다가 혹시 테스트를 해봤는데 큰일날뻔 했네요ㅜ 모아보기에서 데이터를 읽어오지 못하는 것처럼 보입니다.