[Android] Retrofit으로 DateTime 형식 데이터 받아오기 (feat. Java DateTime 포맷 패턴)

TPark·2020년 5월 5일
1

안드로이드

목록 보기
4/10
post-custom-banner

받아올 JSON 데이터

        <item>
            <title>...</title>
            <originallink>http://...</originallink>
            <link>http://...</link>
            <description> ... </description>
            <pubDate>Mon, 27 Apr 2020 15:48:00 +0900</pubDate>
        </item>

받아온 데이터를 저장할 dto 객체

public class NewsDto {
    private String link;
    private String title;
    private String description;
    private Date pubDate;

Retrofit을 통해 API로 부터 받아온 데이터를 DateTime 형식으로 저장하고 싶을때는 ConverterFactory에 아래와 같이 DateFormat을 추가한 Gson 객체를 생성해주면 된다.

Gson gson = new GsonBuilder()
                .setDateFormat("E, dd MMMM yyyy HH:mm:ss X")
                .create();
mRetrofit = new Retrofit.Builder()
                .baseUrl(BASE_URL)
                .addConverterFactory(GsonConverterFactory.create(gson))
                .build();
                

만약 API에서 txt, csv 처럼 Retrofit이 지원하지 않는 형식의 데이터를 받아와야 한다면 Converter.Factory를 상속받는 사용자 정의 컨버터를 만들 수 있다.

+ 자바 DateTime format 패턴 정리

패턴정의ex
y연도1997(yyyy), 12(yy)
M7(M), 07(MM), Jul(MMM), July(MMMM)
E요일Tuesday
aAM / PMAM
H시간(24)23
h시간(12)11
m52
s12
SMillisecond966
zTimezonePacific Standard Time; PST; GMT-08:00
ZTimezone offset in hours (RFC)-0800
XTimezone offset in ISO-08; -0800; -08:00

출처: https://www.journaldev.com/17899/java-simpledateformat-java-date-format

            
post-custom-banner

0개의 댓글