簡體   English   中英

從 Google 日歷 API 格式化時間輸出

[英]Formating time output from Google calendar API

我在 Google Quickstart 日歷 API 上找到了這段代碼,我一直在嘗試格式化時間輸出,但沒有成功。

我嘗試更改時區並閱讀 Android 開發人員的文檔,但我沒有設法修復它。

我正在嘗試獲得類似的東西

2017-07-29 16:00:00

但我得到

2017-07-29T14:00:00.000Z

時區也不同,應該是+2。

    private List<String> getDataFromApi() throws IOException {
        DateTime now = new DateTime(System.currentTimeMillis());
        List<String> eventStrings = new ArrayList<String>();
        Events events = mService.events().list("primary")
                .setMaxResults(10)
                .setTimeMin(now)
                .setOrderBy("startTime")
                .setSingleEvents(true)
                .execute();
        List<Event> items = events.getItems();

        for (Event event : items) {
            DateTime start = event.getStart().getDateTime();
            if (start == null) {
                start = event.getStart().getDate();
            }
            eventStrings.add(
                    String.format("%s (%s)", event.getSummary(), start));
        }
        return eventStrings;
    }

日歷 API 的默認時區是 UTC(這是您所看到的),根據RFC3339格式化。

時間,作為組合的日期時間值(根據 RFC3339 格式化)。 除非在 timeZone 中明確指定時區,否則需要時區偏移。

嘗試使用toTimeString()將其轉換為人類可讀的格式。 您還可以查看此SO 帖子以了解其他替代方案。

private String getFormattedDate(Date date)
    {
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss+05:30");
        df.setTimeZone(TimeZone.getTimeZone("GMT+05:30"));
        return df.format(date);
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM