import java.text.SimpleDateFormat;

import java.util.*;java

/**

* 日期操做工具类

*/

public class DateUtils {

/**

* 日期转换-  String -> Date

*

* @param dateString 字符串时间

* @return Date类型信息

* @throws Exception 抛出异常

*/

public static Date parseString2Date(String dateString) throws Exception {

if (dateString == null) {

return null;

}

return parseString2Date(dateString, "yyyy-MM-dd");

}工具

/**

* 日期转换-  String -> Date

*

* @param dateString 字符串时间

* @param pattern    格式模板

* @return Date类型信息

* @throws Exception 抛出异常

*/

public static Date parseString2Date(String dateString, String pattern) throws Exception {

if (dateString == null) {

return null;

}

SimpleDateFormat sdf = new SimpleDateFormat(pattern);

Date date = sdf.parse(dateString);

return date;

}.net

/**

* 日期转换 Date -> String

*

* @param date Date类型信息

* @return 字符串时间

* @throws Exception 抛出异常

*/

public static String parseDate2String(Date date) throws Exception {

if (date == null) {

return null;

}

return parseDate2String(date, "yyyy-MM-dd");

}orm

/**

* 日期转换 Date -> String

*

* @param date    Date类型信息

* @param pattern 格式模板

* @return 字符串时间

* @throws Exception 抛出异常

*/

public static String parseDate2String(Date date, String pattern) throws Exception {

if (date == null) {

return null;

}

SimpleDateFormat sdf = new SimpleDateFormat(pattern);

String strDate = sdf.format(date);

return strDate;

}索引

/**

* 获取当前日期的本周一是几号

*

* @return 本周一的日期

*/

public static Date getThisWeekMonday() {

Calendar cal = Calendar.getInstance();

cal.setTime(new Date());

// 得到当前日期是一个星期的第几天

int dayWeek = cal.get(Calendar.DAY_OF_WEEK);

if (1 == dayWeek) {

cal.add(Calendar.DAY_OF_MONTH, -1);

}

// 设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一

cal.setFirstDayOfWeek(Calendar.MONDAY);

// 得到当前日期是一个星期的第几天

int day = cal.get(Calendar.DAY_OF_WEEK);

// 根据日历的规则,给当前日期减去星期几与一个星期第一天的差值

cal.add(Calendar.DATE, cal.getFirstDayOfWeek() - day);

return cal.getTime();

}字符串

/**

* 获取当前日期周的最后一天

*

* @return 当前日期周的最后一天

*/

public static Date getSundayOfThisWeek() {

Calendar c = Calendar.getInstance();

int dayOfWeek = c.get(Calendar.DAY_OF_WEEK) - 1;

if (dayOfWeek == 0) {

dayOfWeek = 7;

}

c.add(Calendar.DATE, -dayOfWeek + 7);

return c.getTime();

}get

/**

* 根据日期区间获取月份列表

*

* @param minDate 开始时间

* @param maxDate 结束时间

* @return 月份列表

* @throws Exception

*/

public static List getMonthBetween(String minDate, String maxDate, String format) throws Exception {

ArrayList result = new ArrayList<>();

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");io

Calendar min = Calendar.getInstance();

Calendar max = Calendar.getInstance();ast

min.setTime(sdf.parse(minDate));

min.set(min.get(Calendar.YEAR), min.get(Calendar.MONTH), 1);form

max.setTime(sdf.parse(maxDate));

max.set(max.get(Calendar.YEAR), max.get(Calendar.MONTH), 2);

SimpleDateFormat sdf2 = new SimpleDateFormat(format);

Calendar curr = min;

while (curr.before(max)) {

result.add(sdf2.format(curr.getTime()));

curr.add(Calendar.MONTH, 1);

}

return result;

}

/**

* 根据日期获取年度中的周索引

*

* @param date 日期

* @return 周索引

* @throws Exception

*/

public static Integer getWeekOfYear(String date) throws Exception {

Date useDate = parseString2Date(date);

Calendar cal = Calendar.getInstance();

cal.setTime(useDate);

return cal.get(Calendar.WEEK_OF_YEAR);

}

/**

* 根据年份获取年中周列表

*

* @param year 年分

* @return 周列表

* @throws Exception

*/

public static Map getWeeksOfYear(String year) throws Exception {

Date useDate = parseString2Date(year, "yyyy");

Calendar cal = Calendar.getInstance();

cal.setTime(useDate);

//获取年中周数量

int weeksCount = cal.getWeeksInWeekYear();

Map mapWeeks = new HashMap<>(55);

for (int i = 0; i < weeksCount; i++) {

cal.get(Calendar.DAY_OF_YEAR);

mapWeeks.put(i + 1, parseDate2String(getFirstDayOfWeek(cal.get(Calendar.YEAR), i)));

}

return mapWeeks;

}

/**

* 获取某年的第几周的开始日期

*

* @param year 年分

* @param week 周索引

* @return 开始日期

* @throws Exception

*/

public static Date getFirstDayOfWeek(int year, int week) throws Exception {

Calendar c = new GregorianCalendar();

c.set(Calendar.YEAR, year);

c.set(Calendar.MONTH, Calendar.JANUARY);

c.set(Calendar.DATE, 1);

Calendar cal = (GregorianCalendar) c.clone();

cal.add(Calendar.DATE, week * 7);

return getFirstDayOfWeek(cal.getTime());

}

/**

* 获取某年的第几周的结束日期

*

* @param year 年份

* @param week 周索引

* @return 结束日期

* @throws Exception

*/

public static Date getLastDayOfWeek(int year, int week) throws Exception {

Calendar c = new GregorianCalendar();

c.set(Calendar.YEAR, year);

c.set(Calendar.MONTH, Calendar.JANUARY);

c.set(Calendar.DATE, 1);

Calendar cal = (GregorianCalendar) c.clone();

cal.add(Calendar.DATE, week * 7);

return getLastDayOfWeek(cal.getTime());

}

/**

* 获取当前时间所在周的开始日期

*

* @param date 当前时间

* @return 开始时间

*/

public static Date getFirstDayOfWeek(Date date) {

Calendar c = new GregorianCalendar();

c.setFirstDayOfWeek(Calendar.SUNDAY);

c.setTime(date);

c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek());

return c.getTime();

}

/**

* 获取当前时间所在周的结束日期

*

* @param date 当前时间

* @return 结束日期

*/

public static Date getLastDayOfWeek(Date date) {

Calendar c = new GregorianCalendar();

c.setFirstDayOfWeek(Calendar.SUNDAY);

c.setTime(date);

c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek() + 6);

return c.getTime();

}

//得到上周一的日期

public static Date geLastWeekMonday(Date date) {

Calendar cal = Calendar.getInstance();

cal.setTime(getThisWeekMonday(date));

cal.add(Calendar.DATE, -7);

return cal.getTime();

}

//得到本周一的日期

public static Date getThisWeekMonday(Date date) {

Calendar cal = Calendar.getInstance();

cal.setTime(date);

// 得到当前日期是一个星期的第几天

int dayWeek = cal.get(Calendar.DAY_OF_WEEK);

if (1 == dayWeek) {

cal.add(Calendar.DAY_OF_MONTH, -1);

}

// 设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一

cal.setFirstDayOfWeek(Calendar.MONDAY);

// 得到当前日期是一个星期的第几天

int day = cal.get(Calendar.DAY_OF_WEEK);

// 根据日历的规则,给当前日期减去星期几与一个星期第一天的差值

cal.add(Calendar.DATE, cal.getFirstDayOfWeek() - day);

return cal.getTime();

}

//得到下周一的日期

public static Date getNextWeekMonday(Date date) {

Calendar cal = Calendar.getInstance();

cal.setTime(getThisWeekMonday(date));

cal.add(Calendar.DATE, 7);

return cal.getTime();

}

//得到今天日期

public static Date getToday(){

return new Date();

}

//得到本月一日的日期

public static Date getFirstDay4ThisMonth(){

Calendar calendar = Calendar.getInstance();

calendar.set(Calendar.DAY_OF_MONTH,1);

return calendar.getTime();

}

public static void main(String[] args) {

try {

System.out.println("本周一" + parseDate2String(getThisWeekMonday()));

System.out.println("本月一日" + parseDate2String(getFirstDay4ThisMonth()));

} catch (Exception e) {

e.printStackTrace();

}

}

}

更多资讯请在码云搜索KakiNakajima

java dateutils_Java DateUtils java时间工具类 kaki的博客相关推荐

  1. java dateutils_Java中简单日期工具类DateUtils的实现

    最近工作时经常处理日期,想起以前sql server中datediff,dateadd 等方法非常好用,于是想在java中实现类以的功能,而且提高精度,所以初步有了以下代码: package com. ...

  2. 判断多个时间(数值)区间段是否出现重叠(时间工具类)

    一.工具类代码: package com.sszh.util.date;import java.math.BigDecimal; import java.text.SimpleDateFormat; ...

  3. Java时间工具类(把日期时间转换成xx秒前、xx分钟前、xx小时前...)

    Java时间工具类(把日期时间转换成xx秒前.xx分钟前.xx小时前...) package com.liuzy.javaopen.entity; import java.text.ParseExce ...

  4. Java中 LocalDate、LocalTime、LocalDateTime三个时间工具类的使用介绍

    Java中 LocalDate.LocalTime.LocalDateTime三个时间工具类的使用介绍 一.背景: 之前在做项目的过程中,对日期时间类没有一个系统的了解,总是在用的时候去搜索一下,解决 ...

  5. Java时间工具类(获取上个月、获取月份1月1号时间戳、获取月份最后一天时间戳...)

    在开发中我们经常还会用到日期时间,以下是一个日期时间工具类,包含: 获取每月月初时间戳 获取每月15号时间戳 获取每月月末时间戳 获取当前被格式化后的日期 从这些方法中你可以改写出你需要的方法 PS: ...

  6. Java时间工具类,获取日、周、旬、月、季度、半年、年等时间周期

    时间周期工具类,记录在这里方便以后使用,有需要的可以看看. 工具类如下: import java.text.ParseException; import java.text.SimpleDateFor ...

  7. java中常用的日期工具类

    java中常用的日期工具类 日期相关的类: package net.yto.ofclacct.core.util;import java.text.ParseException; import jav ...

  8. java inputtools_Java后台开发常用工具类

    本文涉及的工具类部分是自己编写,另一部分是在项目里收集的.工具类涉及数据库连接.格式转换.文件操作.发送邮件等等.提高开发效率,欢迎收藏与转载. 数据库连接工具类 数据库连接工具类--仅仅获得连接对象 ...

  9. java web 项目 常用 小工具类 ~~~~

    java web 项目 常用 小工具类 ~~~~ 一 .DateUtil  日期工具类 package com.devframe.common.util;import java.text.Simple ...

最新文章

  1. 深度盘点:详细介绍机器学习中的7种交叉验证方法!
  2. Go 语言编程 — 高级数据类型 — Slice 切片
  3. 连接php的作用是什么意思,链接是什么?
  4. helm search搜索charts命令
  5. python cookbook 自营_Python Cookbook总结 7-8 章
  6. 中相对路径与绝对路径的写法_相对路径和绝对路径?简洁易懂解释+实例
  7. vue-cli 3.0 怎么配置 webpack.ProvidePlugin
  8. python单词首字母大写_在Python中将每个单词的首字母大写
  9. HSmartWindowControl 之 显示图像
  10. 计算机专业毕业论文题目大全集
  11. 操作系统实验一 进程管理
  12. Android利用shape画虚线
  13. 用ros3.3中的nth进行带宽叠加
  14. lf模型下声门脉冲matlab程序,数字语音处理及MATLAB仿真.rar第二章
  15. 信管师培训之第十一节课作业(法律法规+标准规范+职业道德)
  16. UC如被百度控股,手机qq浏览器改如何进攻和防守
  17. sys-config使用
  18. AR2开源桌面机器人
  19. 新基建必看系列——一文看懂爆火的智慧灯杆未来趋势及竞争格局
  20. 牛客网嵌入式软件工程师面试题(一)

热门文章

  1. B - Ada and Queue
  2. 2020阿里云双12-企业飞天会员年终盛典全攻略
  3. 36氪联合阿里云,共同研制中小企业发展「催化剂」
  4. QCon演讲|闲鱼从零到千万DAU的应用架构演进
  5. 基于阿里云的 Node.js 稳定性实践
  6. 深入浅出网络编程与Swoole内核
  7. Spark in action on Kubernetes - Playground搭建与架构浅析
  8. 解析DataWorks数据集成中测试连通性失败问题
  9. 探索PCIe 3.0峰值性能,长江存储推新消费级固态硬盘致态TiPlus5000
  10. 手把手一起 图形化安装 k8s 集群