如何将日期转换为小时和分钟? 这样的方式:
Date d=new Date();
String str=convertToMyFormat(d);
print(str);
// for example for date Sat Jan 03 04:40:00 GMT+03:30 1970 print should be some
//thing like this:
>> str ="50:10";
如果此代码创建日期:
Period p = new Period(0l);
p = p.plusDays(2);
p = p.plusMinutes(70);
d=new Date(p.toStandardDuration().getMillis());
此解决方案
public String convertToMyFormat(Date d){
Duration du=new Duration(d.getTime())
str=du.toStandardHours().getHours() + ":"+ du.getMinutes();
return str;
}
打印分钟大于60.“49:70”
我需要的方法是,如果分钟超过60小时。 将java.util.date或long转换为此格式的每个解决方案都是可以接受的。如果持续时间大于24小时,则应增加小时数而不是添加白天
答案 0 :(得分:0)
假设您需要当月和分钟的小时数,请使用Jodatime:
public static String convert (DateTime input) {
int hours = (input.getDayOfMonth() - 1) * 24 + input.getHourOfDay();
return String.format("%d:%02d",hours,input.getMinuteOfHour());
}
public static void main(String[] args) {
System.out.println(convert(new DateTime("2014-01-01T22:09")) );
System.out.println(convert(new DateTime("2014-01-03T22:21")) );
System.out.println(convert(new DateTime("2014-01-31T22:44")) );
}
输出
22:09
70:21
742:44
编辑:当年的抵消原则相同:
public static String convertOffsetInYear (DateTime input) {
int hours = (input.getDayOfYear() - 1) * 24 + input.getHourOfDay();
return String.format("%d:%02d",hours,input.getMinuteOfHour());
}
如果您需要更多异国情调的参考时间(即需要计算小时距离的时刻),您可以查看持续时间和PeriodFormatterBuilder。