public static String getTime(String daysDuration) {
//如果不是数字
if(!isNumeric(daysDuration)){
return null;
}
//如果是数字 小于0则 返回
BigDecimal bd = new BigDecimal(daysDuration);
int days = bd.intValue();//天数
int mills = (int) Math.round(bd.subtract(new BigDecimal(days)).doubleValue() * 24 * 3600);
//获取时间
Calendar c = Calendar.getInstance();
c.set(1900, 0, -1);
c.add(Calendar.DATE, days);
int hour = mills / 3600;
int minute = (mills - hour * 3600) / 60;
int second = mills - hour * 3600 - minute * 60;
c.set(Calendar.HOUR_OF_DAY, hour);
c.set(Calendar.MINUTE, minute);
c.set(Calendar.SECOND, second);
// 定义输出日期的格式
SimpleDateFormat outputFormat = new SimpleDateFormat("yyyy-MM-dd");
// 格式化日期为指定格式
String formattedDate = outputFormat.format(c.getTime());
return formattedDate;
}
/**
* 校验是否数据含小数点
*
* @param str
* @return
*/
private static boolean isNumeric(String str){
Pattern pattern = Pattern.compile("[0-9]+\\.*[0-9]*");
Matcher isNum = pattern.matcher(str);
if(!isNum.matches()){
return false;
}
return true;
}
public static void main(String[] args) {
System.out.println(getTime("45237")); //输入Excel的时间字符串
}
解决Excel导入时间,接收为数字,转换成正常时间的工具类
最新推荐文章于 2024-08-18 21:36:31 发布