java - दो कैलेंडर वस्तुओं के घंटों में अंतर




android calendar (2)

मेरे पास दो Calendar ऑब्जेक्ट हैं, और मैं ये देखना चाहता हूं कि उनके बीच कितना अंतर है, घंटों में।

यहां पहला Calendar

Calendar c1 = Calendar.getInstance();

और दूसरा Calendar

Calendar c2 = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.ENGLISH);
c2.setTime(sdf.parse("Sun Feb 22 20:00:00 CET 2015"));

अब कहते हैं कि c1.getTime() है: Fri Feb 20 20:00:00 CET 2015 और Fri Feb 20 20:00:00 CET 2015 c2.getTime() Sun Feb 22 20:00:00 CET 2015

तो क्या ऐसा कोई ऐसा कोड है जो घंटे के पहले और दूसरे Calendar बीच अंतर वापस करेगा? मेरे मामले में यह 48 को वापस कर देना चाहिए


आप निम्न प्रयास कर सकते हैं:

long seconds = (c2.getTimeInMillis() - c1.getTimeInMillis()) / 1000;
int hours = (int) (seconds / 3600);

या जुडा-टाइम एपीआई के Period वर्ग का उपयोग करते हुए, आप कन्स्ट्रक्टर public Period(long startInstant, long endInstant) उपयोग कर सकते हैं और घंटे क्षेत्र पुनः प्राप्त कर सकते हैं:

Period period = new Period(c1.getTimeInMillis(), c2.getTimeInMillis());
int hours = period.getHours();

जावा 8 में आप कर सकते हैं

long hours = ChronoUnit.HOURS.between(c1.toInstant(), c2.toInstant());




simpledateformat