2017-09-25 38 views
-1

因爲我想要關於日曆應用程序的設計。 我不明白爲什麼1477040400000L是日期類型。爲什麼不使用dd-mm-yyyy這個日期類型?android -compactCalendarView日期類型

Event ev1 = new Event(Color.BLUE, 1477040400000L, "Teachers' Professional Day"); 
compactCalendar.addEvent(ev1); 
+0

'1477040400000L'是毫秒自Unix紀元數('1970-01-01T00:00Z') ,它相當於'2016-10-21T09:00Z'(或* 2016年10月21日,上午9點,UTC *):http://currentmillis.com/?1477040400000 – 2017-09-25 14:01:13

+1

哦〜拓寬我的視野!謝謝! – user3818495

回答

0

在你的榜樣,價值1477040400000L表示從Unix Epoch(即1 1970年1月@ 00:00:00 UTC)的毫秒數。由於長整數通常使用少得多的內存空間來表示日期的字符串表示(8字節與String.length字節,假設爲UTF-8),日期通常存儲爲long

如果你絕對必須使用日期的字符串表示,你可以試試這個:

Event ev1 = null; 
try { 
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS"); 
    Date parsedDate = dateFormat.parse(yourDateAsString); 
    ev1 = new Event(Color.BLUE, parsedDate.getTime, "Teachers' Professional Day"); 
} catch(Exception e) { 
    // dateFormat.parse() could throw a ParseException 
} 

if (ev1 != null) { 
    compactCalendar.addEvent(ev1); 
}