JAVA中日期转换和日期计算的方法

  • 1.不同格式日期相互转换方法
  • 2.日期计算方法
  • 3.计算日期间隔的方法

1.不同格式日期相互转换方法

public class TestDateConvertUtil {public static void main(String[] args) throws ParseException {// 获取当前时间Date date = new Date(); // 获取当前时间long timestamp = System.currentTimeMillis(); // 获取当前时间戳// 日期格式转换date2String(); // 日期转字符串string2Date(); // 字符串转日期date2Timestamp(); // 日期转时间戳timestamp2Date(); // 时间戳转日期cst2Date(); // CST格式转日期nonstandard2Date(); // 非标准格式转日期convertDateStr(); // 日期字符串格式转换date2Calendar(); // 日期转日历calendar2Date(); // 日历转日期}public static void date2String() {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date date = new Date();String dateStr = sdf.format(date);System.out.println(dateStr);}public static void string2Date() throws ParseException {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);}public static void date2Timestamp() {Date date = new Date();String timestamp = String.valueOf(date.getTime());System.out.println(timestamp);}public static void timestamp2Date() {String timestamp = "1526470220000";Date date = new Date(new Long(timestamp));System.out.println(date);}public static void cst2Date() throws ParseException {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);}public static void nonstandard2Date() throws ParseException {SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");sdf.setLenient(false); // 设置严格验证日期String dateStr = "20180516";Date date = sdf.parse(dateStr);System.out.println(date);}public static void convertDateStr() throws ParseException {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);}public static void date2Calendar() {Date date = new Date();Calendar c = Calendar.getInstance();c.setTime(date);System.out.println(c);}public static void calendar2Date() {Calendar c = Calendar.getInstance();Date date = c.getTime();System.out.println(date);}
}

2.日期计算方法

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);}}}
}

3.计算日期间隔的方法

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);}

摘自日期转换和计算:
https://www.cnblogs.com/pcheng/p/9047583.html

Java日期时间格式转换相关推荐

  1. java datetime 转换_如何实现Java日期时间格式转换

    Java日期时间以及日期相互转换 Java日期时间,以及相互转化,供大家参考,具体内容如下 package com.study.string; import java.text.ParseExcept ...

  2. 语言 全排列 函数_Power Query 中日期时间格式转换需要了解的区域语言对照表

    不同的国家有不同的日期时间书写格式,比如: 多数亚洲国家:yyyy-MM-dd hh:mm 有些欧洲国家:dd.MM.yyyy HH:mm 极少数的国家:MM/dd/yyyy h:mm tt 还有各种 ...

  3. mysql带中文日期转换_【MySQL】日期时间格式转换_MySQL

    bitsCN.com [MySQL]日期时间格式转换 这里是一个使用日期函数的例子.下面的查询选择了所有记录,其date_col的值是在最后30天以内: www.bitsCN.com mysql> ...

  4. Between 的开始日期和结束日期是同一天没有查询结果,附SQL server数据库的日期时间格式转换大全

    Between 的开始日期和结束日期是同一天没有查询结果 原因: 条件和参数不是一个格式)如字段的类型里包含了时间分钟秒,但是给的条件里没有这些,只有时间 between会在日期后面自动追加" ...

  5. 如何通过数据库SQL Server 2014中的SQL日期格式化语句来转换出我们需要的日期格式化日期时间格式转换的教程方法

    如何通过数据库SQL Server 2014中的SQL日期格式化语句来转换出我们需要的日期格式化日期时间格式转换的教程方法 作者:张国军_Suger 开发工具与关键技术:SQL Server 2014 ...

  6. sql时间转换时分秒_SqlServer 日期时间格式转换(SQL server date time format conversion).doc...

    SqlServer 日期时间格式转换(SQL server date time format conversion) SqlServer 日期时间格式转换(SQL server date time f ...

  7. java UTC时间格式转换

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

  8. Python常用日期时间格式转换总结

    日期格式转换不外乎就是日期格式-字符串格式-数值格式之间的相互转换,以及相同格式的不同形式间的转换,最常用的是datetime模块,下面直接举例子说明如何进行转换. 1. 日期时间格式转字符 首先获取 ...

  9. android 日期键盘,android 日期时间格式转换;软键盘显示消失;获取系统title

    获取activty title bar: TextView actionTitle = (TextView) findViewById(com.android.internal.R.id.action ...

  10. SQL Server日期时间格式转换字符串详解

    1.日期时间转字符串 Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006  10:57AM Select CONVERT(varchar(10 ...

最新文章

  1. 统计学习方法 pdf_李航统计学习方法(第三章)
  2. 32 usb 配置描述符_USB协议详解第4讲(USB描述符标准配置描述符)
  3. Pandas (GeoPandas)笔记:set_index reset_index
  4. PostgreSQL 压缩包 在win7上安装
  5. 【Spring源码分析】Bean加载流程概览
  6. formdata上传文件_关于multipart/formdata上传文件
  7. Colima:MacOS 上的极简容器运行时和 Kubernetes
  8. erp生产管理系统流程_企业生产管理好帮手——ERP智能管理系统
  9. Mysql数据库使用及其问题合集一
  10. NUC1077 Humble Numbers【数学计算+打表+水题】
  11. dosbox进行debug调试教程
  12. 【第四章】NB-IoT模组BC95 利用串口调试助手接入华为(电信)平台
  13. 用python画科赫雪花
  14. 【VMware vSphere】Veeam备份
  15. 开机直接进入键盘布局_Winodws10系统出现“选择键盘布局”界面如何解决
  16. 3D艺术家推荐——4款最佳3D建模软件
  17. flowable报错FlowableTaskAlreadyClaimedException问题
  18. 常用SQL语句大全实例总结-基础篇
  19. 什么是国际物流专线?国际快递专线又是什么呢?
  20. i 春秋CTF题目 百度杯 9月场 再见CMS Upload 复现

热门文章

  1. 墨者学院 - IIS写权限漏洞分析溯源
  2. HPlaserjet1020打印机无法识别
  3. linux佳入门教程,命令行基础工具的更佳替代品
  4. 18个小实例入门SQLServer XML查询
  5. Textbox的用法
  6. IT人的职业生涯规划
  7. 利用百度万年历判断指定日期是否是节假日
  8. 天极游戏2005年度回顾:电视游戏篇
  9. VS2008整合sp1
  10. 无人机探测雷达软硬件解决方案