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 ...
随机推荐
- PyQt(Python+Qt)学习随笔:QTreeView树形视图的itemsExpandable属性
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QTreeView树形视图的itemsExpandable属性用于控制视图中用户是否可以通过操作展开 ...
- PyQt学习随笔:Qt Designer调用帮助时报错找不到assistant.exe文件的解决办法
老猿是按照<第15.5节 PyQt5安装与配置>步骤安装的PyQt及相关工具,但最近在Qt Designer中点击帮助相关菜单时报错找不到assistant.exe文件,如图: 按照报错信 ...
- PyQt(Python+Qt)学习随笔:什么是信号绑定(Unbound and Bound Signals)?
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 1.概述 信号的绑定是由在类的实例变量中第一次通过类实例的方式(即"self.信号&quo ...
- python-字典dict、去除重复set
dict Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度. 举个例子,假设要根据同学的名字 ...
- java的jdk8新特性optional怎么样使用
从 Java 8 引入的一个很有趣的特性是 Optional 类.Optional 类主要解决的问题是臭名昭著的空指针异常(NullPointerException) -- 每个 Java 程序员都 ...
- Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezone' property manually.
用pycharm连接mysql报错 改变serverTimezone 改了之后确实可以连接上mysql数据库
- WC.exe(基于Java实现)
一.github地址 https://github.com/Mazin-hub/MyWC.exe.git 二.PSP表格 PSP2.1 Personal Software Process Stage ...
- 如何实现OSM地图本地发布并自定义配图
目录 1.缘起 2.准备环境 2.1.安装linux系统 2.2.安装docker 2.3.安装Docker Compose 2.4.安装git 3.发布地图 3.1.拉取代码 3.2.测试网络 3. ...
- 【游记】CSp2020
同步发表于洛谷博客 初赛 Day -2 做了个模拟(非洛谷),只有一丁点分,显然过不了 (盗张 i am ak f 的图) Day 0 颓,颓,颓,又做了一套模拟,坚定了退役的信心. Day 1 人好 ...
- 题解-洛谷P4229 某位歌姬的故事
题面 洛谷P4229 某位歌姬的故事 \(T\) 组测试数据.有 \(n\) 个音节,每个音节 \(h_i\in[1,A]\),还有 \(m\) 个限制 \((l_i,r_i,g_i)\) 表示 \( ...