Env*_*nve 10 java android calendar simpledateformat
我有两个Calendar对象,我想检查它们之间的区别,以小时为单位.
这是第一个 Calendar
Calendar c1 = Calendar.getInstance();
Run Code Online (Sandbox Code Playgroud)
第二个 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"));
Run Code Online (Sandbox Code Playgroud)
现在让我们说c1.getTime()的是:Fri Feb 20 20:00:00 CET 2015和c2.getTime()是Sun Feb 22 20:00:00 CET 2015.
那么是否有任何代码可以Calendar在几小时内返回第一个和第二个之间的差异?在我的情况下它应该返回48.
man*_*uti 15
您可以尝试以下方法:
long seconds = (c2.getTimeInMillis() - c1.getTimeInMillis()) / 1000;
int hours = (int) (seconds / 3600);
Run Code Online (Sandbox Code Playgroud)
或者使用Joda-Time API的Period类,您可以使用构造函数public Period(long startInstant, long endInstant)并检索hours字段:
Period period = new Period(c1.getTimeInMillis(), c2.getTimeInMillis());
int hours = period.getHours();
Run Code Online (Sandbox Code Playgroud)
在Java 8中你可以做到
long hours = ChronoUnit.HOURS.between(c1.toInstant(), c2.toInstant());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6682 次 |
| 最近记录: |