java 常用时间操作类,计算到期提醒,N年后,N月后的日期
package com.zjjerp.tool; import java.text.ParseException;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar; /**
* @Author:Demom
* @Date:2013-8-2,上午9:22:05
*/
public class GetDateTimeTools { /***
* 得到yyyy-MM-dd时间格式
* @param date
* @return
*/
public static String getYYYYMMDD(Date date){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
return sdf.format(date);
}
/***
* 得到yyyy-MM-dd hh:mm:ss时间格式
* @param date
* @return
*/
public static String getYYYYMMDDHHMMSS(Date date){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
return sdf.format(date);
}
//获取当月的的10号
public static String getnowMonthtenday(){
Calendar cal = Calendar.getInstance();
int month = cal.get(Calendar.MONTH) + 1;
int year = cal.get(Calendar.YEAR);
StringBuffer sb =new StringBuffer();
sb.append(year);
sb.append("-");
if(month<10){
sb.append("0");
sb.append(month);
}else{
sb.append(month);
}
sb.append("-10");
return sb.toString();
}
//获取当前月的下一个月的10号
public static String getnextMonthtenday(){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String strDate = sdf.format(new Date());
int index = strDate.indexOf(" ");
String str1 = strDate.substring(0, index);
String[] str2 = str1.split("-");
String nextDay="";
if(str2[1]!="12"){
int Month = Integer.parseInt(str2[1])+1;
nextDay=str2[0]+"-"+Month+"-"+"10";
}
if(str2[1]=="12" || "12".equals(str2[1])){
int Month = 1;
int Year = Integer.parseInt(str2[0])+1;
nextDay = Year+"-"+Month+"-"+"10";
}
return nextDay;
}
//获取当前年
public static int getCurrentYear(){
Calendar cal = Calendar.getInstance();
int month = cal.get(Calendar.MONTH) + 1;
int year = cal.get(Calendar.YEAR);
return year;
}
//获取当前yue
public static int getCurrentMonth(){
Calendar cal = Calendar.getInstance();
int month = cal.get(Calendar.MONTH) + 1;
return month;
}
/**
* 以上个月为时间轴,获取上个月的时间
* @param status(0 代表获取月的1号,1代表获取月末)
* @return
*/
public static String getLastMonthDay(int status) {
Calendar cal = Calendar.getInstance();
Date date = new Date();
cal.setTime(date);
int year = 0;
int month = cal.get(Calendar.MONTH); // 上个月月份
String newMonth="";
//设置年月
if (month == 0) {
year = cal.get(Calendar.YEAR) - 1;
month = 12;
newMonth=""+month;
} else {
if(month<10){
newMonth="0"+String.valueOf(month);
}else{
newMonth=String.valueOf(month);
}
year = cal.get(Calendar.YEAR);
}
//设置天数
String temp=year + "-" + newMonth.toString();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM");
Date d = null;
try {
d = format.parse(temp);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
cal.setTime(d); int day =cal.getActualMaximum(Calendar.DAY_OF_MONTH);
if(status==1){
String endDay = year + "-" + newMonth + "-" + day;
return endDay;
}else{
String endDay = year + "-" + newMonth + "-" + "01";
return endDay;
}
}
/**
* 以上个月为时间轴,获取下个月的时间
* @param status(0 代表获取月的1号,1代表获取月末)
* @return
*/
public static String getNextMonthDay(int status) {
Calendar cal = Calendar.getInstance();
int day=cal.get(Calendar.DATE);
SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd");
String timestr= sdf.format(new Date());
timestr=timestr.substring(0,8);
if(status==1){
timestr+=String.valueOf(day);
}else{
timestr+="01";
}
return timestr;
}
/***
* 以上个月为时间轴,获取当月的时间
* @param status(0 代表获取月的1号,1代表获取月末)
* @return
*/
public static String getCurrMonthDay(int status) {
Calendar cal = Calendar.getInstance();
Date date = new Date();
cal.setTime(date);
int year = 0;
int month = cal.get(Calendar.MONTH); // 上个月月份
String newMonth="";
//设置年月
if (month == 0) {
year = cal.get(Calendar.YEAR) - 1;
month = 12;
newMonth=""+month;
} else {
if(month<10){
newMonth="0"+String.valueOf(month);
}else{
newMonth=String.valueOf(month);
}
year = cal.get(Calendar.YEAR);
}
//设置天数
String temp=year + "-" + newMonth.toString();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM");
Date d = null;
try {
d = format.parse(temp);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
cal.setTime(d);
int day =cal.getActualMaximum(Calendar.DAY_OF_MONTH);
if(status==1){
String endDay = year + "-" + newMonth + "-" + day;
return endDay;
}else{
String endDay = year + "-" + newMonth + "-" + "01";
return endDay;
} }
//获取当月5号日前哦
public static String getevery5day(){ Calendar cal = Calendar.getInstance();
int month = cal.get(Calendar.MONTH) + 1;
int year = cal.get(Calendar.YEAR);
StringBuffer sb =new StringBuffer();
sb.append(year);
sb.append("-");
if(month<=10){
sb.append("0");
sb.append(month);
}else{
sb.append(month);
}
sb.append("-05");
return sb.toString();
} //合同续约
public static String datexuyue(int year){ SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd");
String now = sdf.format(new Date());
String[] nowStr = now.split("-");
int year1 = Integer.parseInt(nowStr[0])+year;
StringBuffer sb = new StringBuffer();
sb.append(year1+"-"+nowStr[1]+"-"+nowStr[2]);
return sb.toString();
}
//得到N天后的日期
public static String getBeforeAfterDate(String datestr, int day) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
java.sql.Date olddate = null;
try {
df.setLenient(false);
olddate = new java.sql.Date(df.parse(datestr).getTime());
} catch (ParseException e) {
throw new RuntimeException("日期转换错误");
}
Calendar cal = new GregorianCalendar();
cal.setTime(olddate); int Year = cal.get(Calendar.YEAR);
int Month = cal.get(Calendar.MONTH);
int Day = cal.get(Calendar.DAY_OF_MONTH); int NewDay = Day + day; cal.set(Calendar.YEAR, Year);
cal.set(Calendar.MONTH, Month);
cal.set(Calendar.DAY_OF_MONTH, NewDay); return new java.sql.Date(cal.getTimeInMillis()).toString();
} //根据两个日期A、B计算AB之间的天数
public static long getQuot(String time1, String time2){
long quot = 0;
SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd");
try { Date date1 = ft.parse( time1 );
Date date2 = ft.parse( time2 );
quot = date1.getTime() - date2.getTime();
quot = quot / 1000 / 60 / 60 / 24;
} catch (ParseException e) {
e.printStackTrace();
}
return quot;
}
//得到N月后的日期
public static String GetSysDate(String format, String StrDate, int year, int month,
int day) {
Calendar cal = Calendar.getInstance();
SimpleDateFormat sFmt = new SimpleDateFormat(format);
cal.setTime(sFmt.parse( (StrDate), new ParsePosition(0))); if (day != 0) {
cal.add(cal.DATE, day);
}
if (month != 0) {
cal.add(cal.MONTH, month);
}
if (year != 0) {
cal.add(cal.YEAR, year); }
return sFmt.format(cal.getTime());
} public static void main(String[] args) {
System.out.println(GetSysDate("yyyy-MM-dd", "2004-01-18", 0, 13, 0));
}
}
java 常用时间操作类,计算到期提醒,N年后,N月后的日期的更多相关文章
- JAVA常用时间操作类
http://www.360doc.com/content/10/1210/17/2703996_76839640.shtml 在程序里面要获取当前的开始时间和结束时间,以及当前天所在的周的开始 ...
- Java常用API(ArrayList类)
Java常用API(ArrayList类) 我们为什么要使用ArrayList类? 为了更加方便的储存对象,因为使用普通的数组来存储对象太过麻烦了,因为数组的一个很大的弱点就是长度从一开始就固定了,所 ...
- Python常用时间操作总结【取得当前时间、时间函数、应用等】转载
Python常用时间操作总结[取得当前时间.时间函数.应用等] 转载 2017-05-11 作者:清风乐逍遥 我要评论 这篇文章主要介绍了Python常用时间操作,包括取得当前时间.时间函 ...
- Java常用API(Arrays类)
Java常用API(Arrays类) 什么是Arrays类? java.util.Arrays 此类包含用来操作数组的各种方法,比如排序和搜索等.其所有方法均为静态方法,调用起来 非常简单. 这里我们 ...
- Java常用API(Scanner类)
Java常用API( Scanner类)1 1.Scanner类 首先给大家介绍一下什么是JavaAPI API(Application Programming Interface),应用程序编程接口 ...
- Java常用API(Math类)
Java常用API(Math类) Math类的作用 java.lang.Math 类包含用于执行基本数学运算的方法,如初等指数.对数.平方根和三角函数.类似这样的工具 类,其所有方法均为静态方法,并且 ...
- Java常用API(String类)
Java常用API(String类) 概述: java.lang.String 类代表字符串.Java程序中所有的字符串文字(例如 "abc" )都可以被看作是实现此类的实例 1. ...
- Java常用API(Random类)
Java常用API(Random类) Random:是一个用于生成随机数的类 构造方法 public Random() :创建一个新的随机数生成器. 返回随机数的方法 public int nextI ...
- java/javascript 时间操作工具类
一.java 时间操作工具类 import org.springframework.util.StringUtils; import java.text.ParseException; import ...
随机推荐
- LeetCode 043 Multiply Strings
题目要求:Multiply Strings Given two numbers represented as strings, return multiplication of the numbers ...
- python 爬取喜马拉雅节目生成RSS Feed
记录于:2020年12月03日用了N年的手机在经历N次掉落之后终于扛不住了,后背都张嘴了,估计再摔一次电池都能飞出来.换了手机,由于之前有听喜马拉雅的习惯,但是手机里自带有播客软件,强迫症逼着我不能下 ...
- ERP费用报销操作与设计--开源软件诞生31
赤龙ERP费用报销讲解--第31篇 用日志记录"开源软件"的诞生 [进入地址 点亮星星]----祈盼着一个鼓励 博主开源地址: 码云:https://gitee.com/redra ...
- 第7.6节 Python中类的继承机制详述
在本章第一节,介绍了面向对象程序设计的三个特征:封装.继承和多态,前面章节重点介绍了封装和多态,由于Python语言是多态语言,对象的类型不再由继承等方式决定,而由实际运行时所表现出的具体行为来决定, ...
- PyQt(Python+Qt)学习随笔:Qt Designer中spacer部件的orientation属性
在Designer的spacers部件中有2个部件,分别是Horizontal Spacer和Vertical Spacer,这两个部件都有orientation属性,表示Spacer部件的方向. 如 ...
- Hbase API 多条件查询
public static ResultScanner scan(String tableName, String family, List<String> columns, List&l ...
- Springboot集成xxl-Job
一.前言 xxl-job一个轻量级的分布的调度中间件,详情介绍自己到官网看:https://www.xuxueli.com/xxl-job/ 二.客户端(执行器) 引入依赖compile group: ...
- 谷歌浏览器debugger技巧
1.Pause/Resume script execution:暂停/恢复脚本执行(程序执行到下一断点停止). 2.Step over next function call:逐步执行. 跳过按钮.它会 ...
- 抖音数据采集SDK
接口参数.返回示例请参考文档:抖音api Github仓库:DouyinSDK 0. 初始化 from douyin import AwemeSDK token = 'xxxxxxxx' host = ...
- 5.深入Istio源码:Pilot-agent作用及其源码分析
转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com 本文使用的Istio源码是 release 1.5. 介绍 Sidecar在注入的时候会 ...