Java获取当前系统时间、自定义时间和日期格式化输出部分应用总结
1、java获取当前时间,并格式化输出,如2018-12-01 11:20:11
// 获取当前时间,并格式化输出,如2018-12-01 11:20:11
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(format.format(new Date())); // 输出:2019-04-02 19:15:02
2、获取long类型的当前时间。值为从1970年1月1日0点0分0秒到当前时间的毫秒数。有两种方式:
Date date = new Date();
// 方式1,利用date.getTime()
System.out.println(date.getTime()); // 输出:1554203839118
// 方式2:直接用System.currentTimeMillis()
System.out.println(System.currentTimeMillis()); // 输出:1554203839118
3、时间格式化
// 2019-4-2 16:43:05
String str = DateFormat.getDateTimeInstance(2, 2, Locale.CHINESE).format(new java.util.Date());
System.out.println(str); // 输出:2019-4-2 16:43:05
// 2019年4月2日 下午04时44分00秒
String str2 = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, Locale.CHINESE).format(new java.util.Date());
System.out.println(str2); // 输出:2019年4月2日 下午07时18分40秒
4、获取形如:yyyy-MM-dd HH:mm:ss.xxx精确到毫秒的时间格式
// 2019-04-02 16:45:07.267
String str = new java.sql.Timestamp(System.currentTimeMillis()).toString();
System.out.println(str); // 输出:2019-04-02 16:45:07.267
5、java获取具体的时间值,年份、月份、日期、小时、分钟、秒等
// 通过Calendar获取具体的时间值
Calendar c = Calendar.getInstance();//可以对每个时间域单独修改
// 获取具体的时间值,如月份,年份、小时、分钟等
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int date = c.get(Calendar.DATE);
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);
int second = c.get(Calendar.SECOND);
System.out.println(year + "年" + month + "月" + date + "日 " + hour + "时" + minute + "分" + second + "秒");
6、java修改自定义时间,并格式化输出
// 时间格式
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
// 以下修改自定义时间
Calendar c = Calendar.getInstance();//可以对每个时间域单独修改
// 修改上边的时间,得到指定的时间
c.set(Calendar.YEAR, year-2);// 年份-2,即两年前
c.set(Calendar.MONTH, month+2);// 月份+2,即当前月份两个月后
c.set(Calendar.DATE, date +2);// 日期+2
String strDate = dateFormat.format(c.getTime());//得到指定的时间
System.out.println(strDate);
7、java修改自定义时间,并格式化输出
// 修改时间,并格式化输出
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date2 = sdf.parse("2009-11-04");// 初始化日期
c.setTime(date2);
c.add(Calendar.MONTH, 5);// 月份+5
c.add(Calendar.DATE, 10);// 日期+10
String strDate2 = sdf.format(c.getTime());//得到指定的时间
System.out.println(strDate2);