public static long getDateFromStr(String date,String format){
long longDate=0l;
try {
SimpleDateFormat sd=new SimpleDateFormat(format);
longDate=sd.parse(date).getTime();
} catch (ParseException e) {
}
return longDate;
}
Integer exitTimeOutNumber=Integer.valueOf(SXStringUtils.toString(DateTime.getDateFromStr(“60分钟”, "mm")/1000));
Log.e("radio", SXStringUtils.toString(exitTimeOutNumber));
DateTime dt = new DateTime(exitTimeOutNumber*1000);
Log.e("radio",dt.getMinute() + "分钟" );
小于60分钟的都可以转换成功,60分钟和大于60分钟结果就不对了,请问这事什么原因
分钟级别的,60就到顶了,90分钟那是1小时30分钟,你这用日期来格式化明显不会返回90字样的,因为这就不是任何一个级别的时间。
getDateFromStr(“60分钟”, "mm") 这个调用时你上面的方法吗? 传入“60分钟”倒是没有用过。
调用的是上面的方法,你怎么用?应该怎么传?
getDateFromStr 这个方法的功能是根据format日期格式将日期字符串date转为时间的数字显示.getDateFromStr(“60分钟”, "mm") 这样用不会报错吗?第一个参数的日期格式是否需要满足第二个参数规定的格式?
没有报错,Integer exitTimeOutNumber=Integer.valueOf(SXStringUtils.toString(DateTime.getDateFromStr(“60分钟”, "mm分钟")/1000));改成这样的 结果还是没发生变化,10分钟、20分钟、30分钟、45分钟都可以,60分钟转换后就变成了0分钟,90分钟转换后就变成了30分钟
不需要转换成毫秒了,直接转换成秒数,没用这些方法
try {
SimpleDateFormat sd=new SimpleDateFormat(format);
longDate=sd.parse(date).getTime();
} catch (ParseException e) {
}
catch到的exception没有做处理,当然不会报错了。e.printStackTrace();试试