Google Calendar Api - 将DataTime转换为Calendar对象

时间:2015-11-12 10:19:46

标签: java android datetime calendar google-calendar-api

我正在尝试将此DataTime对象转换为Calendar对象。

DateTime start = event.getStart()。getDateTime();

DateTime格式: 2015-11-11T19:25:55.000Z 我需要格式:“yyyy / MM / dd HH:mm:ss”

如何剪切TimeZone并将其转换为Calendar对象?

原始Google日历Api:

private List<String> getDataFromApi() throws IOException {
    // List the next 10 events from the primary calendar.
    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) {
            // All-day events don't have start times, so just use
            // the start date.
            start = event.getStart().getDate();
        }
        eventStrings.add(String.format("%s (%s)", event.getSummary(),start));
    }
    return eventStrings;
}

3 个答案:

答案 0 :(得分:1)

您可以使用SimpleDateFormat将2015-11-11T19:25:55.000Z解析为实际的Date对象。一旦你有了Date对象,它就像:

一样简单
Calendar calendar = Calendar.getInstance();
calendar.setTime(your_date_object);

我希望这有帮助!

答案 1 :(得分:0)

我正在尝试用它做某事,但它不起作用。

            DateTime start = event.getStart().getDateTime();
            DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
            String newDate = dateFormat.format(start);

也许有人知道为什么我无法解析这些数据

            DateTime start = event.getStart().getDateTime();
            String NewDate = String.format("(%s)", start);

            Calendar cal = Calendar.getInstance();
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZZZZZ", Locale.getDefault());
            cal.setTime(sdf.parse(NewDate));

我一直有不可解析的日期例外。

我尝试过格式:

   yyyy-MM-dd'T'HH:mm:ss.SSSZ

     

YYYY-MM-dd'T'HH:MM:ssZZZZZ

     

YYYY-MM-dd'T'HH:MM:ss.SSSZZ

答案 2 :(得分:0)

这项工作对我来说:

SimpleDateFormat dtExibicao = new SimpleDateFormat("dd/MM/yyyy");
Date dtInicio = new Date(event.getStart().getDateTime().getValue());
String stInicio = dtExibicao.format(dtInicio);

如果您想要java.util.Calendar,可以使用@ k3v1n4ud3示例代码:

java.util.Calendar calendar = java.util.Calendar.getInstance();
calendar.setTime(dtInicio);