这个Java程序在时间单位日转换方面有什么问题?
当我像这样编写代码时,不会出现错误:-这个Java程序在时间单位日转换方面有什么问题?,java,Java,当我像这样编写代码时,不会出现错误:- import java.util.Date; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.concurrent.TimeUnit; public class DateDifference{ public static void main(String[] main){ String str = "201
import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.concurrent.TimeUnit;
public class DateDifference{
public static void main(String[] main){
String str = "20121401092958";
/* TimeUnit spanInDays = */getDateDiff(str);
//System.out.println(spanInDays);
}
public static void getDateDiff(String str ){
DateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
Date currentDate = new Date();
Date givenDate = null;
Date d2 = null;
try{
givenDate = dateFormat.parse(str);
long diff = currentDate.getTime() - givenDate.getTime();
System.out.println("Days "+ TimeUnit.DAYS.convert(diff, TimeUnit.MILLISECONDS));
}catch(Exception e){
e.printStackTrace();
}
}
}
但当我这样编码时:-
import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.concurrent.TimeUnit;
public class DateDifference{
public static void main(String[] main){
String str = "20121401092958";
TimeUnit spanInDays = getDateDiff(str);
System.out.println(spanInDays);
}
public static TimeUnit getDateDiff(String str ){
DateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
Date currentDate = new Date();
Date givenDate = null;
Date d2 = null;
try{
givenDate = dateFormat.parse(str);
long diff = currentDate.getTime() - givenDate.getTime();
return TimeUnit.DAYS.convert(diff, TimeUnit.MILLISECONDS);
}catch(Exception e){
e.printStackTrace();
}
}
}
我发现编译错误
如何解决这个问题?您的方法是
公共静态时间单位
因此,您的方法必须返回TimeUnit类型。你得到的回报是一个漫长的过程
TimeUnit.Days.convertdiff,TimeUnit.millizes是long类型
只需更改返回类型或返回的内容即可
希望这有帮助。编译器说方法的返回类型不是它所期望的;您将其声明为时间单位,但返回的是long类型的值 由于返回的是长时间而不是时间单位的定义,因此应该调整返回类型:
public static long getDateDiff(String str) {
我认为,^所指向的差异无法转换为时间单位,但我发现很难理解。
public static long getDateDiff(String str) {