1.DateHandler.java

package Utils.dateHandler;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date; public class DateHandler { /**
* 改变日期为String类型:格式为yyyy-MM-dd
* @param date 日期
* @return String类型的转换结果
*/
public static String dateToString(Date date) {
String sdate = "";
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
if(date != null) {
sdate = formatter.format(date);
}
return sdate;
} /**
* 改变日期为String类型:格式为yyyy-MM-dd HH:mm
* @param date 日期
* @return String类型的转换结果
*/
public static String dateToStringHourMinute(Date date) {
String sdate = "";
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm");
if(sdate != null) {
sdate = formatter.format(date);
}
return sdate;
} /**
* 改变日期为String类型:格式自定义
* @param date 日期
* @param format 格式
* @return String类型的转换结果
*/
public static String dateToString(Date date, String format) {
String sdate = "";
SimpleDateFormat formatter = new SimpleDateFormat(format);
if(sdate != null) {
sdate = formatter.format(date);
}
return sdate;
} /**
* 改变String记录的日期为java.util.Date类型
* @param date String类型日期
* @return Date类型转换结果
* @throws ParseException
*/
public static Date changeStringToDate(String date) throws ParseException {
Date t = null;
if((date != null) && (!date.trim().equals(""))) {
try {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
t = formatter.parse(date);
} catch(ParseException ex) {
ex.printStackTrace();
throw new RuntimeException(ex);
}
}
return t;
} /**
* 改变String记录的日期为java.util.Date类型,格式自定义
* @param date String类型日期
* @param format 自定义格式模板
* @return Date类型日期转换结果
* @throws ParseException
*/
public static Date changeStringToDate(String date, String format) throws ParseException {
Date t = null;
if((date != null) && (!date.trim().equals(""))) {
try {
SimpleDateFormat formatter = new SimpleDateFormat(format);
t = formatter.parse(date);
} catch(ParseException ex) {
ex.printStackTrace();
throw new RuntimeException(ex);
}
}
return t;
}
}

 2.使用:

package Utils.dateHandler;

import java.text.ParseException;
import java.util.Date; import org.junit.Test; public class Test111 { @Test
public void test1() throws ParseException{
System.out.println(DateHandler.dateToString(new Date()));
System.out.println(DateHandler.dateToString(new Date(), "yyyy-MM-dd hh:mm:ss"));
System.out.println(DateHandler.dateToStringHourMinute(new Date()));
System.out.println(DateHandler.changeStringToDate("1900-05-06"));
System.out.println(DateHandler.changeStringToDate("1925-02-20 15:25:30","yyyy-MM-dd hh:mm:ss" ));
}
}

2017-09-16
2017-09-16 11:15:10
2017-09-16 11:15
Sun May 06 00:00:00 CST 1900
Fri Feb 20 15:25:30 CST 1925

也可以在JSP页面中使用该工具类:比如:

JSP中引入该类:

<%@ page import="java.util.*,Utils.DateHandler" %>

文本框中取服务器当前时间:

<input class="form-control" value="<%= DateHandler.dateToString(new Date()) %>"  />

结果:

--------------------------------------------------------------------------

更全的日期工具类:

DateHandler.java
package com.tyust.common;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar; import org.junit.Test; public class DateHandler {
/**
* 把一个日期转换成指定格式的字符串
* @param time
* @return
*/
public static String dateToString(Date time) {
String ctime = "";
SimpleDateFormat formatter;
formatter = new SimpleDateFormat("yyyy-MM-dd");
if (time != null) {
ctime = formatter.format(time);
}
return ctime;
} public static String dateToStringHourMinute(Date time) {
String ctime = "";
SimpleDateFormat formatter;
formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm");
if (time != null) {
ctime = formatter.format(time);
}
return ctime;
}
// 把String转换成Date
public static Date changeStringToDate(String time) throws ParseException {
Date t = null;
if (time != null && !time.trim().equals("")) {
try {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
t= formatter.parse(time);
} catch (ParseException e) {
e.printStackTrace();
throw new java.lang.RuntimeException(e);
}
}
return t;
}
// 把String转换成Date如:2010-01-07 13:10:10,yyyy-MM-dd HH:mm:ss
public static Date changeStringToDate(String time,String fomat) throws ParseException {
Date t = null;
if (time != null && !time.trim().equals("")) {
try {
SimpleDateFormat formatter = new SimpleDateFormat(fomat);
t= formatter.parse(time);
} catch (ParseException e) {
e.printStackTrace();
throw new java.lang.RuntimeException(e);
}
}
return t;
}
//把Date转换成String如:2010-01-07 13:10:10
public static String dateToString(Date time,String fomat) {
String ctime = "";
SimpleDateFormat formatter = new SimpleDateFormat(fomat);
if (time != null) {
ctime = formatter.format(time);
}
return ctime;
} /**
* 获得下季度第一天
* @author zxg
* @param month
* @return
*/
public static Date getNextSeasonFirstDay(int month){
int array[][] = {{1,2,3},{4,5,6},{7,8,9},{10,11,12}};
int season = 1;
if(month>=1&&month<=3){
season = 2;
}
if(month>=4&&month<=6){
season = 3;
}
if(month>=7&&month<=9){
season = 4;
}
if(month>=10&&month<=12){
season = 1;
}
int start_month = array[season-1][0]; Date date = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy");//可以方便地修改日期格式
String years = dateFormat.format(date);
int years_value = Integer.parseInt(years);
if(month>=10&&month<=12){
years_value++;
}
int start_days =1;//years+"-"+String.valueOf(start_month)+"-1";//getLastDayOfMonth(years_value,start_month);
String seasonDateStr = years_value+"-"+start_month+"-"+start_days;
Date seasonDate=new Date();
try {
seasonDate = changeStringToDate(seasonDateStr);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return seasonDate; }
/**
* 获得季度的第一天和最后一天
* @author zxg
* @param month
* @param isThisSeason:
* (1)true:本季度第一天和最后一天
* (2)false:上季度第一天和最后一天
* @return
*/
public static String getSeasonFirstEndDay(int month,boolean isThisSeason){
int array[][] = {{1,2,3},{4,5,6},{7,8,9},{10,11,12}};
int season = 1;
if(month>=1&&month<=3){
if(isThisSeason){
season = 1;
}else{
season = 4;
}
}
if(month>=4&&month<=6){
if(isThisSeason){
season = 2;
}else{
season = 1;
}
}
if(month>=7&&month<=9){
if(isThisSeason){
season = 3;
}else{
season = 2;
}
}
if(month>=10&&month<=12){
if(isThisSeason){
season = 4;
}else{
season = 3;
}
}
int start_month = array[season-1][0];
int end_month = array[season-1][2]; Date date = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy");//可以方便地修改日期格式
String years = dateFormat.format(date);
int years_value = Integer.parseInt(years);
if(month>=1&&month<=3&&!isThisSeason){
years_value--;
}
int start_days =1;//years+"-"+String.valueOf(start_month)+"-1";//getLastDayOfMonth(years_value,start_month);
int end_days = getLastDayOfMonth(years_value,end_month);
String seasonDate = years_value+"-"+start_month+"-"+start_days+";"+years_value+"-"+end_month+"-"+end_days;
return seasonDate; }
/**
* 获得下季度的第一天和最后一天
* @author zxg
* @param month
* @return
*/
public static String getDownSeasonFirstEndDay(int month){
int array[][] = {{1,2,3},{4,5,6},{7,8,9},{10,11,12}};
int season = 1;
if(month>=1&&month<=3){
season = 2;
}
if(month>=4&&month<=6){
season = 3;
}
if(month>=7&&month<=9){
season = 4;
}
if(month>=10&&month<=12){
season = 1;
}
int start_month = array[season-1][0];
int end_month = array[season-1][2]; Date date = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy");//可以方便地修改日期格式
String years = dateFormat.format(date);
int years_value = Integer.parseInt(years);
if(month>=10&&month<=12){
years_value++;
}
int start_days =1;//years+"-"+String.valueOf(start_month)+"-1";//getLastDayOfMonth(years_value,start_month);
int end_days = getLastDayOfMonth(years_value,end_month);
String seasonDate = years_value+"-"+start_month+"-"+start_days+";"+years_value+"-"+end_month+"-"+end_days;
return seasonDate; }
/**
* 获得季度首月的25号
* (业务需求改变,要求改为季度首月10号)
* @author zxg
* @param month
* @param isThisSeason:
* (1)true:本季度首月的25号 (本季度首月10号)
* (2)false:下季度首月的25号 (下季度首月10号)
* @return
*/
public static Date getSeasonTwentyFive(int month,boolean isThisSeason){
int array[][] = {{1,2,3},{4,5,6},{7,8,9},{10,11,12}};
int season = 1;
if(month>=1&&month<=3){
if(isThisSeason){
season = 1;
}else{
season = 2;
}
}
if(month>=4&&month<=6){
if(isThisSeason){
season = 2;
}else{
season = 3;
}
}
if(month>=7&&month<=9){
if(isThisSeason){
season = 3;
}else{
season = 4;
}
}
if(month>=10&&month<=12){
if(isThisSeason){
season = 4;
}else{
season = 1;
}
}
int start_month = array[season-1][0]; Date date = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy");//可以方便地修改日期格式
String years = dateFormat.format(date);
int years_value = Integer.parseInt(years);
if(month>=10&&month<=12&&!isThisSeason){
years_value++;
}
int start_days =10;
String seasonDateStr = years_value+"-"+start_month+"-"+start_days;
Date seasonDate=new Date();
try {
seasonDate = changeStringToDate(seasonDateStr);
} catch (ParseException e) {
e.printStackTrace();
}
return seasonDate; }
/**
* 获得季度首月的26号
* (业务需求改变,要求改为季度首月11号)
* @author zxg
* @param month
* @param isThisSeason:
* (1)true:本季度首月的26号 (本季度首月11号)
* (2)false:上季度首月的26号 (上季度首月11号)
* @return
*/
public static Date getSeasonTwentySix(int month,boolean isThisSeason){
int array[][] = {{1,2,3},{4,5,6},{7,8,9},{10,11,12}};
int season = 1;
if(month>=1&&month<=3){
if(isThisSeason){
season = 1;
}else{
season = 4;
}
}
if(month>=4&&month<=6){
if(isThisSeason){
season = 2;
}else{
season = 1;
}
}
if(month>=7&&month<=9){
if(isThisSeason){
season = 3;
}else{
season = 2;
}
}
if(month>=10&&month<=12){
if(isThisSeason){
season = 4;
}else{
season = 3;
}
}
int start_month = array[season-1][0]; Date date = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy");//可以方便地修改日期格式
String years = dateFormat.format(date);
int years_value = Integer.parseInt(years);
if(month>=1&&month<=3&&!isThisSeason){
years_value--;
}
int start_days =11/**/;
String seasonDateStr = years_value+"-"+start_month+"-"+start_days;
Date seasonDate=new Date();
try {
seasonDate = changeStringToDate(seasonDateStr);
} catch (ParseException e) {
e.printStackTrace();
}
return seasonDate; }
/**
* 获取某年某月的最后一天
* @author zxg
* @param year 年
* @param month 月
* @return 最后一天
*/
public static int getLastDayOfMonth(int year, int month) {
if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8
|| month == 10 || month == 12) {
return 31;
}
if (month == 4 || month == 6 || month == 9 || month == 11) {
return 30;
}
if (month == 2) {
if (isLeapYear(year)) {
return 29;
} else {
return 28;
}
}
return 0;
} /**
* 计算2个日期中间间隔的时间
*/
public static int getIntervalDays(Date startday,Date endday){
if(startday.after(endday)){
Date cal=startday;
startday=endday;
endday=cal;
}
long sl=startday.getTime();
long el=endday.getTime();
long ei=el-sl;
return (int)(ei/(1000*60*60*24)+1);
} /**
* 是否闰年
* @author zxg
* @param year 年
* @return
*/
public static boolean isLeapYear(int year) {
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
/**
* 获取当天的最后一秒
* @return
*/
public static Date getDayLastSecond(){
Date targetDate = new Date();
String dateStr = dateToString(targetDate);
try {
targetDate = changeStringToDate(dateStr+" 23:59:59","yyyy-MM-dd HH:mm:ss");
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println("targetDate:"+targetDate);
return targetDate;
}
/**
* 获取当天的第一秒
* @return
*/
public static Date getDayFirstSecond(){
Date targetDate = new Date();
String dateStr = dateToString(targetDate);
try {
targetDate = changeStringToDate(dateStr+" 00:00:00","yyyy-MM-dd HH:mm:ss");
} catch (ParseException e) {
e.printStackTrace();
}
return targetDate;
}
/**
* date:2012-12-01||2012-12-31
* type:第一天:10 最后一天:20;
* getDayFirstLast(这里用一句话描述这个方法的作用)
* (这里描述这个方法适用条件 – 可选)
* @param type
* @return
*Date
* @throws ParseException
* @exception
* @since 1.0.0
*/
public static Date getDayFirstLast(Date dateParm,String type) throws ParseException{
Date targetDate = new Date();
String dateStr=dateToString(dateParm);
if("10".equals(type)){
targetDate = changeStringToDate(dateStr+" 00:00:00","yyyy-MM-dd HH:mm:ss");
return targetDate;
}else if("20".equals(type)){
targetDate = changeStringToDate(dateStr+" 23:59:59","yyyy-MM-dd HH:mm:ss");
return targetDate;
}else{
return new Date();
}
}
public static Date nextday(){
Date date = new Date();
Calendar calendar = GregorianCalendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DATE, 1);
date = calendar.getTime();
return date;
}
/**
* 根据参数得到指定时间段后的一天
* nextDayByType(这里用一句话描述这个方法的作用)
* (这里描述这个方法适用条件 – 可选)
* @param day
* @return
*Date
* @exception
* @since 1.0.0
*/
public static Date nextDayByType(int day){
Date date = new Date();
Calendar calendar = GregorianCalendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DATE, day);
date = calendar.getTime();
return date;
}
public static Date nextDayByType(Date crruDate, int day){
Calendar calendar = GregorianCalendar.getInstance();
calendar.setTime(crruDate);
calendar.add(Calendar.DATE, day);
crruDate = calendar.getTime();
return crruDate;
}
/*
* 单元测试
*/
@Test
public void dateExample(){
// System.out.println("获得下季度第一天 :"+getNextSeasonFirstDay(4));
// System.out.println("获得本季度首月的26号:"+getSeasonTwentySix(1,true));
// System.out.println("获得上季度首月的26号:"+getSeasonTwentySix(1,false));
//
// System.out.println("获得本季度的第一天和最后一天:"+getSeasonFirstEndDay(10,true));
// System.out.println("获得上季度的第一天和最后一天:"+getSeasonFirstEndDay(10,false));
}
@Test
public void currMonth(){
String str = "" ;
SimpleDateFormat sdf= new SimpleDateFormat( "yyyy-MM-dd" );
Calendar lastDate = Calendar.getInstance();
int month=lastDate.get(Calendar.MONTH);
str=sdf.format(lastDate.getTime());
// System.out.println("month :"+month);
// String dayStr=getSeasonFirstEndDay(9,true);
// String str[]=dayStr.split(";");
// try {
// System.out.println("str[0] :"+changeStringToDate(str[0]));
// } catch (ParseException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
// System.out.println("str[1] :"+str[1]);
}
@Test
public void dateTest() throws ParseException{
System.out.println("获得下季度第一天 :"+dateToString(nextDayByType(changeStringToDate("2013-01-02 14:30:30", "yyyy-MM-dd HH:mm:ss"),12),"yyyy-MM-dd HH:mm:ss"));
} }

DateHandler日期处理工具(JSP中使用后台工具类)的更多相关文章

  1. jsp中怎么调用java类中的方法

    在jsp页面中先要,引入java类 例如: <%@page import="javabean.DbConn"%><!-- 引入包中的"类" - ...

  2. 在python开发工具PyCharm中搭建QtPy环境(详细)

    在python开发工具PyCharm中搭建QtPy环境(详细) 在Python的开发工具PyCharm中安装QtPy5(版本5):打开“File”——“Settings”——“Project Inte ...

  3. JSP中利用JSTL标签对日期格式化

    数据库:Mysql 开发语言:JAVA 页面类型:JSP 对Mysql中的日期类型格式化,在JSP中,如何办呢,很多人说在JAVA后台去日期格式化,无奈了,于是找到了比较靠谱的答案 需要先引入JSTL ...

  4. 在jsp中选中checkbox后 将该记录的多个数据获取,然后传到Action类中进行后台处理 双主键情况下 *.hbm.xml中的写法

    在jsp中选中checkbox后 将该记录的多个数据获取,然后传到Action类中进行后台处理 双主键情况下 *.hbm.xml中的写法   ==========方法1: --------1. 选相应 ...

  5. struts2:JSON在struts中的应用(JSP页面中将对象转换为JSON字符串提交、JSP页面中获取后台Response返回的JSON对象)

    JSON主要创建如下两种数据对象: 由JSON格式字符串创建,转换成JavaScript的Object对象: 由JSON格式字符串创建,转换成JavaScript的List或数组链表对象. 更多关于J ...

  6. java后台json如何传递到jsp中解析

    需求:  系统前端jsp使用的是easyUi的datagrid展示了一些任务信息,任务信息中有个状态信息显示的值是数字, 需要根据后台保存的映射关系,将状态显示为描述信息. 原来的jsp前端显示: 解 ...

  7. jsp中/el表达式中将后台传来的时间戳格式化为年月日时分秒

    sp中/el表达式中将后台传来的时间戳格式化为年月日时分秒1.引入相关标签库 <%@taglib prefix="c" uri="http://java.sun.c ...

  8. js和jsp中怎么去获取后台 model.addAttribute()存入的list<。。。>对象

    java 后台List productionGroupList =getProductionGroupList(); model.addAttribute("productionGroupL ...

  9. struts2中的jsp值传到后台action接收的三种方法

    struts2中的Action接收表单传递过来的参数有3种方法: 如,登陆表单login.jsp: <form action="login" method="pos ...

随机推荐

  1. Python代码2转3、3转2的方法

    众所周知,Python2和Python3不兼容. 那么,假如遇到了超大的工作量,我们是不是需要一行一行地手动去改呢? 当然不是. (一)2转3 Python3.7(顺便提一句,现在装3.7发现好像安装 ...

  2. Python 元组Ⅱ

    删除元组 元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组,如下实例: 以上实例元组被删除后,输出变量会有异常信息,输出如下所示: 元组运算符 与字符串一样,元组之间可以使用 + ...

  3. shiro框架学习-4- Shiro内置JdbcRealm

    1.  JdbcRealm 数据库准备 JdbcRealm就是用户的角色,权限都从数据库中读取,也就是用来进行用户认证授权的安全数据源更换为从数据库中读取,其他没有差别,首先在数据库创建三张表: CR ...

  4. vue的transition的name作用

    记录一下今天在vue的transition中遇到的坑 <!DOCTYPE html> <html> <head> <title>Vue中CSS动画原理& ...

  5. List集合中对象的排序

    使用到的是: Collections.sort(); 用法是: List<Book> list_book = new ArrayList<Book>(); Book book= ...

  6. Python稀疏矩阵运算

    import numpy as np import scipy import time import scipy.sparse as sparse t = [1]+[0]*4999 a = scipy ...

  7. 2.Python环境搭建Window、mac、linux

    1.Windows安装Python详解 使用任何高级编程语言都需要有一个自己的编程环境,Python 也不例外.只要使用 Python,就必须要配置 Python 的开发和运行环境. Python 本 ...

  8. Windows Server 部署WEB API时内部错误

    Windows Server 部署WEB API时,发生HTTP 错误 500.21 - Internal Server Error,如图所示: 错误原因:IIS注册Framework4.0 解决方法 ...

  9. SVN appears to be part of a Subversion 问题心得

    昨天更新了下项目,但同时又增加了一个Java工程,我就在本地单独导出到workspace同目录下:结果第二天提交代码的时候,提示如下错误 svn: E155021: The path 'xxx' ap ...

  10. ORACLE同义词使用

    多用户协同开发中,可以屏蔽对象的名字及其持有者.如果没有同义词,当操作其他用户的表时,必须通过user名.object名的形式,采用了Oracle同义词之后就可以隐蔽掉user名, 当然这里要注意的是 ...