我正在尝试将此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;
}
答案 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);