java dateutils_Java DateUtils java时间工具类 kaki的博客

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/521051.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python更改数据框指定位置的数据_python – 更改数据框中多个loc的最快方法

通过zip从两个列表创建的字典使用map,最后在fillna之前替换为原始的非匹配值&#xff1a;d dict(zip(L2, L5))print (d){-1: 9, -3: 10, -4: 11}df[a] df[a].map(d).fillna(df[a])print (df)a b0 9.0 231 10.0 452 11.0 673 11.0 894 10.0 05 4.0 -16 5.0 27 6.0 3性能&#…

流言终结者- Flutter和RN谁才是更好的跨端开发方案?

背景 论坛上很多小伙伴关心为什么闲鱼选择了Flutter而不选择其他跨端方案&#xff1f;站在质量的角度&#xff0c;高性能是一个很重的因素&#xff0c;我们使用Flutter重写了宝贝详情页之后&#xff0c;对比了Flutter和Native详情页的性能表现&#xff0c;结论是中高端机型上F…

【独家揭秘】阿里怎么做双11全链路压测?| CSDN 博文精选

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 牛兔转自 &#xff5c; CSDN企业博客责编 | 阿秃阿里妹导读&#xff1a;全链路压测是阿里的首创&#xff0c;我们将从工作内容、操作过程、运行总结等多个方向来介绍下阿里内部典型电商活动&#xff08;如双11准备&#xff…

Centos7 使用Docker 安装Oracle 截图+关键步骤说明

yum install dockerdocker -v systemctl start docker systemctl status dockerdocker拉取镜像 docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g#查看拉去的oracle镜像 docker images创建Oracle容器 docker run -d -p 1521:1521 --name oracle_11g registr…

阿里程序员深夜智救31楼跳楼邻居

“我妈跳楼了&#xff0c;快救救她&#xff01;”。 8月20日凌晨的四点半左右&#xff0c;我被一阵急促的锤门声音吵醒。 听到这句话&#xff0c;没来得及思考&#xff0c;我就冲出了门。 我们住在31楼&#xff0c;出事的地点在邻居家的主卧&#xff0c;当时女主人整个人都悬…

java操作_JAVA操作文件大全(一)

package com.pengyue;import java.io.*;public class FileOperate {public FileOperate() {}/*** 新建目录* param folderPath String 如 c:/fqf* return boolean*/public void newFolder(String folderPath) {try {String filePath folderPath;filePath filePath.toString()…

数学建模亚太赛优秀论文_2019亚太地区大学生数学建模竞赛志愿者等级评定结果公布!...

2019亚太地区大学生数学建模竞赛志愿者通过赛氪官网招募&#xff0c;本届竞赛共招到来自193所高校的394名志愿者&#xff0c;根据志愿者邀请队伍数和志愿者任务的完成情况&#xff0c;共评选出344名志愿者&#xff0c;6个优秀组织社团。一路相伴&#xff0c;感谢有你~下面是志愿…

看完秒懂的排序算法

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 奎哥责编 | 阿秃之前的文章咱们已经聊过了下图是常用排序算法的时间空间复杂度&#xff1a;排序算法这么多&#xff0c;这里先将排序算法做个简单分类&#xff1a;一、可以根据待排序的数据量规模分类&#xff1a;内部排序&…

手把手教你创建容器服务Kubernetes集群

Kubernetes作为目前最流行的容器编排工具&#xff0c;被越来越多的用户所接受&#xff0c;目前也有越来越多的用户开始考虑使用Kubernetes集群来部署生产应用。那么&#xff0c;此时用户可能面临一个问题&#xff0c;如何规划和创建合适的Kubernetes集群呢&#xff1f; 接下来的…

Navicat 12 连接oracle闪退问题

#首先查看自己oracle的版本 select * from v$version;然后去官网下载instantclient对应的版本instantclient 我的版本是instantclient-basic-windows.x64-11.2.0.4.0.zip 找到对应版本下载即可 最后解压&#xff0c;将解压的文件instantclient_11_2 直接放到安装Navicat的目录…

阿里成立“平头哥”半导体公司,明年推神经网络芯片

9月19日&#xff0c;在2018杭州云栖大会上&#xff0c;阿里巴巴首席技术官张建锋宣布&#xff0c;正式成立平头哥半导体有限公司&#xff0c;“希望这家公司学习“不怕”的精神&#xff0c;要持续的负重前景”。这是继蚂蚁、天猫、菜鸟、飞猪之后&#xff0c;阿里体系内又一个以…

python遗传算法计算实例_遗传算法python简单例子(详解)

# -*-coding:utf-8 -*- #目标求解sin(x)最大值 import random import math import matplotlib.pyplot as plt #初始化种群 生成chromosome_length大小的population_size个个体的种群 def species_origin(population_size,chromosome_length): population[[]] #one dimension re…

四个变量的图表怎么做_品牌策划方案怎么做?5步图文帮你绘制专业策划图表...

品牌策划方案是指通过对目标对象、竞争对手等相关数据的收集及详细分析&#xff0c;创造性地提出的区别于其他竞争者&#xff0c;能够体现自身特色的名称或符号&#xff0c;用以识别某款产品。品牌策划方案需要策划人具备以下能力&#xff1a;高瞻远瞩&#xff0c;看得到品牌的…

阿里云开放国内首个云端数据库测试平台,云已成为数据库新标准;华为5G随行WiFi发布;科大讯飞推出 AI 专用语音芯片系列……...

戳蓝字“CSDN云计算”关注我们哦&#xff01;嗨&#xff0c;大家好&#xff0c;重磅君带来的【云重磅】特别栏目&#xff0c;如期而至&#xff0c;每周五第一时间为大家带来重磅新闻。把握技术风向标&#xff0c;了解行业应用与实践&#xff0c;就交给我重磅君吧&#xff01;重…

AWD-LSTM为什么这么棒?

AWD-LSTM是目前最优秀的语言模型之一。在众多的顶会论文中&#xff0c;对字级模型的研究都采用了AWD-LSTMs&#xff0c;并且它在字符级模型中的表现也同样出色。 本文回顾了论文——Regularizing and Optimizing LSTM Language Models &#xff0c;在介绍AWD-LSTM模型的同时并…

使用Navicat Premium 12 连接远程Oracle数据库

文章目录1. Nacicat premium 12.1.11下载2. 点击【连接】-【ORACLE】3. 输入连接信息异常解决方案1. Nacicat premium 12.1.11下载 Nacicat premium 12.1.11破解版 32/64位 2. 点击【连接】-【ORACLE】 3. 输入连接信息 #连接信息如下&#xff1a; Hostname: 192.168.1.101 …

NLP深度学习:近期趋势概述(一)

在最近发表的论文中&#xff0c;Young及其同事汇总了基于深度学习的自然语言处理&#xff08;NLP&#xff09;系统和应用程序的一些最新趋势。本文的重点介绍是对各种NLP任务&#xff08;如视觉问答&#xff08;QA&#xff09;和机器翻译&#xff09;最新技术&#xff08;SOTA&…

xib 设置阴影_影响uiview阴影的约束?

我正在试图在我的视图控制器中的uiview的所有四个面上建立一个阴影,在我通过xcode向uiview添加约束之前,它工作得非常好。如何使uiview的阴影显示在所有四个边上,并为所有边设置约束?本质上,我发现,每当我通过xcode对我设置了阴影的uiview应用约束时,阴影不会出现在uiview的所…

matlab meshgrid函数_从零开始的matlab学习笔记——(28)立体图切面与三视图

matlab应用——求极限&#xff0c;求导&#xff0c;求积分&#xff0c;解方程&#xff0c;概率统计&#xff0c;函数绘图&#xff0c;三维图像&#xff0c;拟合函数&#xff0c;动态图....更多内容尽在个人专栏&#xff1a;matlab学习这一节我们说一说立体图的切面问题slice函数…

NLP深度学习:近期趋势概述(二)

递归神经网络&#xff08;RNN&#xff09; RNN是专门用于处理顺序信息的神经网络的方法。RNN将计算应用于以先前计算结果为条件的输入序列。这些序列通常由固定大小的标记向量表示&#xff0c;他们被顺序送至循环单元。下图说明了一个简单的RNN框架。 RNN的主要优势在于能够记…