提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、获取当前时间
  • 二、 获取当前时间戳
  • 三、 日期转时间戳
  • 四、 时间戳转日期
  • 五、 日期转字符串
  • 六、 字符串转日期
  • 七、 CST格式转日期
  • 八、 非标准格式转日期
  • 九、 日期字符串格式转换
  • 十、 日期转日历
  • 十一、 日历转日期
  • 十二、日期计算
  • 十三、计算日期间隔的方法
  • 总结

前言

提示:这里可以添加本文要记录的大概内容:

本文整理一下常用的时间格式转换、计算等方便,共自己及大家共同使用。


提示:以下是本篇文章正文内容,下面案例可供参考

一、获取当前时间

Date date = new Date();

二、 获取当前时间戳

long timestamp = System.currentTimeMillis();

三、 日期转时间戳

Date date = new Date();
String timestamp = String.valueOf(date.getTime());
System.out.println(timestamp);

四、 时间戳转日期

String timestamp = "1521480110000";
Date date = new Date(new Long(timestamp));
System.out.println(date);

五、 日期转字符串

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
String dateStr = sdf.format(date);
System.out.println(dateStr);

六、 字符串转日期

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateStr = "2018-05-16 19:30:20";
Date date = sdf.parse(dateStr);
System.out.println(date);

七、 CST格式转日期

SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", java.util.Locale.US); // 注意使用Locale.US参数
String cst = "Tue May 16 19:30:20 CST 2018";
Date date = sdf.parse(cst);
System.out.println(date);

八、 非标准格式转日期

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");sdf.setLenient(false); // 设置严格验证日期
String dateStr = "20180516";
Date date = sdf.parse(dateStr);
System.out.println(date);

九、 日期字符串格式转换

SimpleDateFormat sdfSource = new SimpleDateFormat("yyyyMMdd");
SimpleDateFormat sdfTarget = new SimpleDateFormat("yyyy-MM-dd");
String dateSource = "20180516";
String dateTarget = sdfTarget.format(sdfSource.parse(dateSource));
System.out.println(dateTarget);

十、 日期转日历

Date date = new Date();
Calendar c = Calendar.getInstance();
c.setTime(date);
System.out.println(c);

十一、 日历转日期

Calendar c = Calendar.getInstance();
Date date = c.getTime();
System.out.println(date);

十二、日期计算

public class TestDateCalculateUtil {public static void main(String[] args) throws ParseException {// 日期计算.例子:2018-05-16 19:30:20DateUtils.setYears(new Date(), 2019); // 根据参数设置日期年份.输出:2019-05-16 19:30:20DateUtils.addMonths(new Date(), -1); // 根据参数增加日期月份.输出:2019-04-16 19:30:20DateUtils.truncate(new Date(), Calendar.DATE); // 根据参数截取日期.输出:2019-04-16 00:00:00DateUtils.ceiling(new Date(), Calendar.DATE);  // 根据参数向上进位日期.输出:2018-05-17 00:00:00DateUtils.getFragmentInDays(new Date(), Calendar.MONTH); // 根据参数截取范围内日期后返回天数.输出:16DateUtils.truncatedEquals(new Date(), new Date(), Calendar.DATE); //根据参数范围比较日期是否相同,该例子只比较年月日.输出:trueDateUtils.truncatedCompareTo(new Date(), new Date(), Calendar.MONTH); //根据参数范围比较日期大小,该例子只比较年月.输出:0// 举例getFirstSecondOfMonth(); // 获取当月第一秒getLastSecondOfMonth(); // 获取当月最后一秒getDayOfYear(); // 获取日期是该年的第几天getFirstSundayOfMonth(); // 获取当月的第一个周日}public static void getFirstSecondOfMonth() {Date date = new Date();date = DateUtils.truncate(date, Calendar.MONTH); // 截取日期到月份System.out.println(date); // 输出:2018-05-01 00:00:00}public static void getLastSecondOfMonth() {Date date = new Date();date = DateUtils.ceiling(date, Calendar.MONTH); // 向上进位月份date = DateUtils.addSeconds(date, -1); // 减1秒System.out.println(date); // 输出:2018-05-31 23:59:59}public static void getDayOfYear() {Date date = new Date();long day = DateUtils.getFragmentInDays(date, Calendar.YEAR); // 截取年之后的日期部分,并按天数返回System.out.println(day); // 输出:136}public static void getFirstSundayOfMonth() {Date date = new Date();date = DateUtils.setDays(date, 1); // 从该月第一天开始while (true) {Calendar c = Calendar.getInstance();c.setTime(date);if (c.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) { // 比较该天是否为周日System.out.println(date); // 输出:2018-05-06 19:30:20break;} else {date = DateUtils.addDays(date, 1);}}}
}

十三、计算日期间隔的方法

public static void main(String[] args) {// 两个日期之间实际的间隔,并按规定格式返回,如:2018.8.31与2018.9.4 相差5天String period = DurationFormatUtils.formatPeriod(DateUtils.addDays(new Date(), -5).getTime(), new Date().getTime(), "y-M-d");System.out.println(period); // 相差5天,输出:0-0-5// 计算两个月之间的间隔,跨月即算间隔1个月,如:2018.8.31与2018.9.4 相差1个月int periodOfMonth = getPeriodOfMonth(DateUtils.addDays(new Date(), -5), new Date());System.out.println(periodOfMonth); // 相差1个月,输出:1}public static int getPeriodOfMonth(Date dateBegin, Date dateEnd) {Date begin = DateUtils.truncate(dateBegin, Calendar.MONTH);Date end = DateUtils.truncate(dateEnd, Calendar.MONTH);String period = DurationFormatUtils.formatPeriod(begin.getTime(), end.getTime(), "M");return Integer.parseInt(period);}

总结

摘抄一些常用的方法,以便自己使用

java时间格式转换相关推荐

  1. java时间格式转换_Java时间日期格式转换

    突然忘记了时间格式怎么转换,特此做个记录 Java时间格式转换大全 import java.text.*; import java.util.Calendar; public class VeDate ...

  2. Java时间格式转换大全

    Java时间格式转换大全import java.text.*; import java.util.Calendar; public class VeDate { /*** 获取现在时间* * @ret ...

  3. java时间格式转换_Java中System.currentTimeMillis()计算方式与时间的单位转换

    学会与时间赛跑才能赢得时间的尊重,把握好每一天,趁年轻! java中获取系统当前时间相信大家都会,这是经常用到的也是非常简单的,但还是要经常回顾下一些小细节哦! 一.时间的单位转换 1秒=1000毫秒 ...

  4. java时间格式转换pm,将字符串转换为日期和时间为am / pm格式

    string : 2014-04-25 17:03:13 using SimpleDateFormat is enough to format? or otherwise i will shift t ...

  5. java定义时间格式大全_Java时间格式转换大全

    package com.date; import java.text.DateFormat; import java.text.ParseException; import java.text.Par ...

  6. java格式_java时间格式转换大全

    Java时间格式转换大全 import java.text.*; import java.util.Calendar; public class VeDate { /** * 获取现在时间 * * @ ...

  7. Java日期格式转换

    Java时间格式转换大全 import java.text.*; import java.util.Calendar; public class VeDate { /**    * 获取现在时间    ...

  8. java输出格林威治时间_Java之格林威治时间格式转换成北京时间格式

    Java之格林威治时间格式转换成北京时间格式 /** * Copyright 2020. yaodouwang.com Studio All Right Reserved * * Create on ...

  9. Java ISO 8601时间格式转换

    String pattern = "YYYY-MM-dd'T'HH:mm:ss.SSSZZ"; String timeStr=DateFormatUtils.format(new ...

  10. java UTC时间格式转换

    UTC时间格式样例:2018-09-28T16:00:00.000Z 本地时间格式样式:2018-09-28 24:00:00 将本地时间格式转换成UTC格式 public static String ...

最新文章

  1. Selenium3自动化测试——1. 新建第一个Selenium自动化测试脚本
  2. 一款不错的基于WEB技术的文件服务器
  3. 在JSP中如何或得当前绝对路径
  4. python opencv视频处理教程_OpenCV+Python详细教程-图片+视频(一)-Go语言中文社区...
  5. Cambridge partner
  6. js 过滤script
  7. 唯一标识计算机的位置目录与文件的是,计算机应用基础 7.doc
  8. 喜马拉雅 Apache RocketMQ 消息治理实践
  9. 数据结构之二叉树的创建
  10. 【SAP解决方案干货合集】满满的干货,是您了解华为云SAP解决方案的必备利器
  11. java死锁怎么用jvm调试_性能测试之JVM的故障排查-死锁
  12. No module named ‘pyqt5‘解决办法
  13. sql 二进制文件的导入导出
  14. VSS 2005 配置(含录像)
  15. 从零开始制作游戏外挂
  16. adt matlab 加速退化,可靠性加速退化试验
  17. factorytalk找不到OPC服务器,simatic net 做远程opc服务器问题
  18. 河大计算机学院足球队,“河大杯”我院足球队两连胜提前晋级淘汰赛
  19. ADO 从ACCESS数据库读取图片并显示出来
  20. 有未经处理的异常 0xC00000FD Stack overflow (参数: 0x00000000, 0x00842000)

热门文章

  1. aspectjweaver.jar包下载
  2. 用计算机弹出古诗,电脑屏保不断变化的诗句
  3. Facebook引流到独立站的三种技巧~附保姆级教程
  4. 飞机遭遇时空乱流离奇穿越到30年前
  5. Paparazzi UAV Lisa/M2飞控使用说明书
  6. 王国纪元服务器不稳定,王国纪元闪退怎么解决 游戏闪退解决方法
  7. 回归方程的拟合优度检验_回归分析的“拟合优度”是什么?
  8. 计算机更改刷新频率,电脑显示器刷新频率和分辨率怎么修改
  9. 使用filezilla server搭建ftp服务器
  10. xml.html一键解密工具,华为配置加解密工具