用到Calendar 类和正则,正则学的不好,不然能一行转化掉,代码如下,测试通过:
- import java.text.SimpleDateFormat;
- import java.util.Calendar;
- import java.util.Scanner;
- public class GetTimeBySecond
- {
- private static SimpleDateFormat df= new SimpleDateFormat("HH小时mm分ss秒");
- public static void main(String[] args) {
- System.out.println("请输入一个数字");
- Scanner input = new Scanner(System.in);
- try{
- int second = input.nextInt();
- Calendar date = Calendar.getInstance();
- date.set(0, 0, 0, 0, 0, second);
- String dateStr = df.format(date.getTime());
- dateStr = dateStr.replaceAll("[0]{2}[^x00-xff]{1,2}", "");//去掉00小时,00分和00秒
- dateStr = dateStr.replaceAll("分[0]", "分").replaceAll("小时[0]", "小时");//将01分01秒这种情况转化为1分1秒的情况
- System.err.println(dateStr.startsWith("0") ? dateStr.substring(1) : dateStr);//最后截取01小时这样的情况
- }catch(Exception e){
- System.err.println("您输入的不是数字");
- }
- }
- }
复制代码 |