方法一(线程不安全, 不建议使用)

private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date now = new Date(); 
String time = sdf.format(now);

方法二(线程安全, 建议使用)

// yyyy-MM-dd HH:mm:ss.SSS ---> 年-月-日 时-分-秒-毫秒 (想删掉哪个小部分就直接删掉哪个小部分)
 String timeStr1=LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
 String timeStr2=LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS"));
 System.out.println("当前时间为:"+timeStr1);
 System.out.println("当前时间为:"+timeStr2);


运行结果:

当前时间为:2018-11-27 10:41:47
当前时间为:2018-11-27 10:41:47.392

Java8 日期时间API,新增了LocalDate、LocalDateTime、LocalTime等线程安全类

  • LocalDate:只有日期,诸如:2019-07-13
  • LocalTime:只有时间,诸如:08:30
  • LocalDateTime:日期+时间,诸如:2019-07-13 08:30

 

/**
     * 转换的时间枚举
     */
    public enum DateFormatEnum {
        yyyyMMddHHmmssSSS,
        yyyyMMddHHmmss,
        yyyyMMddHHmm,
        yyyyMMdd
    }

    public static LocalDateTime now(){
//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//        sdf.format(new Date());
       // return new Date();
        return LocalDateTime.now();
    }
    public static String nowToString(){

        return now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
    }

    /**
     *
     * case 后面只能是枚举值
     * @param type
     * @return
     */
    public static String nowToString(DateFormatEnum type){
        String str = null;
        switch (type){
            case yyyyMMddHHmmssSSS:
                str="yyyy-MM-dd HH:mm:ss.SSS";
                break;
            case yyyyMMddHHmmss:
                str="yyyy-MM-dd HH:mm:ss";
                break;
            case yyyyMMddHHmm:
                str="yyyy-MM-dd HH:mm";
                break;
            case yyyyMMdd:
                str="yyyy-MM-dd";
                break;
            default:
                str="yyyy-MM-dd HH:mm:ss";
                break;
        }

       return now().format(DateTimeFormatter.ofPattern(str));
    }