package com.util;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class DateUtil {
public DateUtil(){}
/**
* @see 取得当前日期(格式为:yyyy-MM-dd)
* @return String
*/
public String GetDate()
{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String sDate = sdf.format(new Date());
return sDate;
}
/**
* @see 取得当前时间(格式为:yyy-MM-dd HH:mm:ss)
* @return String
*/
public static String GetDateTime()
{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String sDate = sdf.format(new Date());
return sDate;
}
/**
* @see 按指定格式取得当前时间()
* @return String
*/
public String GetTimeFormat(String strFormat)
{
SimpleDateFormat sdf = new SimpleDateFormat(strFormat);
String sDate = sdf.format(new Date());
return sDate;
}
/**
* @see 取得指定时间的给定格式()
* @return String
* @throws ParseException
*/
public String SetDateFormat(String myDate,String strFormat) throws ParseException
{
SimpleDateFormat sdf = new SimpleDateFormat(strFormat);
String sDate = sdf.format(sdf.parse(myDate));
return sDate;
}
public String FormatDateTime(String strDateTime, String strFormat)
{
String sDateTime = strDateTime;
try {
Calendar Cal = parseDateTime(strDateTime);
SimpleDateFormat sdf = null;
sdf = new SimpleDateFormat(strFormat);
sDateTime = sdf.format(Cal.getTime());
} catch (Exception e) {
}
return sDateTime;
}
public static Calendar parseDateTime(String baseDate)
{
Calendar cal = null;
cal = new GregorianCalendar();
int yy = Integer.parseInt(baseDate.substring(0, 4));
int mm = Integer.parseInt(baseDate.substring(5, 7)) - 1;
int dd = Integer.parseInt(baseDate.substring(8, 10));
int hh = 0;
int mi = 0;
int ss = 0;
if(baseDate.length() > 12)
{
hh = Integer.parseInt(baseDate.substring(11, 13));
mi = Integer.parseInt(baseDate.substring(14, 16));
ss = Integer.parseInt(baseDate.substring(17, 19));
}
cal.set(yy, mm, dd, hh, mi, ss);
return cal;
}
public int getDay(String strDate)
{
Calendar cal = parseDateTime(strDate);
return cal.get(Calendar.DATE);
}
public int getMonth(String strDate)
{
Calendar cal = parseDateTime(strDate);
return cal.get(Calendar.MONTH) + 1;
}
public int getWeekDay(String strDate)
{
Calendar cal = parseDateTime(strDate);
return cal.get(Calendar.DAY_OF_WEEK);
}
public String getWeekDayName(String strDate)
{
String mName[] = {
"日", "一", "二", "三", "四", "五", "六"
};
int iWeek = getWeekDay(strDate);
iWeek = iWeek - 1;
return "星期" + mName[iWeek];
}
public int getYear(String strDate)
{
Calendar cal = parseDateTime(strDate);
return cal.get(Calendar.YEAR) + 1900;
}
public String DateAdd(String strDate, int iCount, int iType)
{
Calendar Cal = parseDateTime(strDate);
int pType = 0;
if(iType == 0)
{
pType = 1;
} else
if(iType == 1)
{
pType = 2;
} else
if(iType == 2)
{
pType = 5;
} else
if(iType == 3)
{
pType = 10;
} else
if(iType == 4)
{
pType = 12;
} else
if(iType == 5)
{
pType = 13;
}
Cal.add(pType, iCount);
SimpleDateFormat sdf = null;
if(iType <= 2)
sdf = new SimpleDateFormat("yyyy-MM-dd");
else
sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String sDate = sdf.format(Cal.getTime());
return sDate;
}
public String DateAdd(String strOption, int iDays, String strStartDate)
{
if(!strOption.equals("d"));
return strStartDate;
}
public int DateDiff(String strDateBegin, String strDateEnd, int iType)
{
Calendar calBegin = parseDateTime(strDateBegin);
Calendar calEnd = parseDateTime(strDateEnd);
long lBegin = calBegin.getTimeInMillis();
long lEnd = calEnd.getTimeInMillis();
int ss = (int)((lBegin - lEnd) / 1000L);
int min = ss / 60;
int hour = min / 60;
int day = hour / 24;
if(iType == 0)
return hour;
if(iType == 1)
return min;
if(iType == 2)
return day;
else
return -1;
}
/*****************************************
* @功能 判断某年是否为闰年
* @return boolean
* @throws ParseException
****************************************/
public boolean isLeapYear(int yearNum){
boolean isLeep = false;
/**判断是否为闰年,赋值给一标识符flag*/
if((yearNum % 4 == 0) && (yearNum % 100 != 0)){
isLeep = true;
} else if(yearNum % 400 ==0){
isLeep = true;
} else {
isLeep = false;
}
return isLeep;
}
/*****************************************
* @功能 计算当前日期某年的第几周
* @return interger
* @throws ParseException
****************************************/
public int getWeekNumOfYear(){
Calendar calendar = Calendar.getInstance();
int iWeekNum = calendar.get(Calendar.WEEK_OF_YEAR);
return iWeekNum;
}
/*****************************************
* @功能 计算指定日期某年的第几周
* @return interger
* @throws ParseException
****************************************/
public int getWeekNumOfYearDay(String strDate ) throws ParseException{
Calendar calendar = Calendar.getInstance();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date curDate = format.parse(strDate);
calendar.setTime(curDate);
int iWeekNum = calendar.get(Calendar.WEEK_OF_YEAR);
return iWeekNum;
}
/*****************************************
* @功能 计算某年某周的开始日期
* @return interger
* @throws ParseException
****************************************/
public String getYearWeekFirstDay(int yearNum,int weekNum) throws ParseException {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, yearNum);
cal.set(Calendar.WEEK_OF_YEAR, weekNum);
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
//分别取得当前日期的年、月、日
String tempYear = Integer.toString(yearNum);
String tempMonth = Integer.toString(cal.get(Calendar.MONTH) + 1);
String tempDay = Integer.toString(cal.get(Calendar.DATE));
String tempDate = tempYear + "-" +tempMonth + "-" + tempDay;
return SetDateFormat(tempDate,"yyyy-MM-dd");
}
/*****************************************
* @功能 计算某年某周的结束日期
* @return interger
* @throws ParseException
****************************************/
public String getYearWeekEndDay(int yearNum,int weekNum) throws ParseException {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, yearNum);
cal.set(Calendar.WEEK_OF_YEAR, weekNum + 1);
cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
//分别取得当前日期的年、月、日
String tempYear = Integer.toString(yearNum);
String tempMonth = Integer.toString(cal.get(Calendar.MONTH) + 1);
String tempDay = Integer.toString(cal.get(Calendar.DATE));
String tempDate = tempYear + "-" +tempMonth + "-" + tempDay;
return SetDateFormat(tempDate,"yyyy-MM-dd");
}
/*****************************************
* @功能 计算某年某月的开始日期
* @return interger
* @throws ParseException
****************************************/
public String getYearMonthFirstDay(int yearNum,int monthNum) throws ParseException {
//分别取得当前日期的年、月、日
String tempYear = Integer.toString(yearNum);
String tempMonth = Integer.toString(monthNum);
String tempDay = "1";
String tempDate = tempYear + "-" +tempMonth + "-" + tempDay;
return SetDateFormat(tempDate,"yyyy-MM-dd");
}
/*****************************************
* @功能 计算某年某月的结束日期
* @return interger
* @throws ParseException
****************************************/
public String getYearMonthEndDay(int yearNum,int monthNum) throws ParseException {
//分别取得当前日期的年、月、日
String tempYear = Integer.toString(yearNum);
String tempMonth = Integer.toString(monthNum);
String tempDay = "31";
if (tempMonth.equals("1") || tempMonth.equals("3") || tempMonth.equals("5") || tempMonth.equals("7") ||tempMonth.equals("8") || tempMonth.equals("10") ||tempMonth.equals("12")) {
tempDay = "31";
}
if (tempMonth.equals("4") || tempMonth.equals("6") || tempMonth.equals("9")||tempMonth.equals("11")) {
tempDay = "30";
}
if (tempMonth.equals("2")) {
if (isLeapYear(yearNum)) {
tempDay = "29";
} else {
tempDay = "28";
}
}
//System.out.println("tempDay:" + tempDay);
String tempDate = tempYear + "-" +tempMonth + "-" + tempDay;
return SetDateFormat(tempDate,"yyyy-MM-dd");
}
}
分享到:
相关推荐
以下是对给定内容中涉及的Java日期操作进行的详细说明: 1. **获取指定月份的第一天**: 使用`java.util.Calendar`类可以方便地获取指定日期所在月份的第一天。首先,将输入的日期字符串转换为`java.util.Date`...
java 日期操作汇总包含date calendar 相互转换
在Java编程语言中,日期和时间的处理是常见的任务,涉及到日期的创建、格式化、解析、比较以及各种转换操作。本篇文章将深入探讨Java中日期转换的各种方法和技巧。 一、日期对象的创建 在Java中,日期对象可以通过...
本篇文章将详细探讨Java中的日期操作接口,特别是围绕"Java日期操作接口"这个主题,以及与之相关的`DateFilter.java`文件。 首先,Java中最基础的日期类是`java.util.Date`。这个类自Java 1.0起就存在,但它的设计...
### Java日期处理大全:掌握时间的艺术 在Java编程中,日期和时间的处理是不可或缺的一部分,尤其是在涉及到数据记录、时间戳、定时任务等场景时。本文将深入探讨Java中的日期处理技术,涵盖从基础到进阶的各种技巧...
### JAVA日期操作汇总 本文将对Java中的日期操作进行详细解析,主要涵盖以下几个方面: 1. 计算某个月份的最大天数; 2. `Calendar`与`Date`之间的转换; 3. 日期格式化; 4. 获取指定日期所在的周序号及设置某...
java日期操作类 操作java日期 替换simplatedateformate
java日期类型操作工具类
如果这个文件包含了代码示例,你可以打开查看具体实现,进一步学习和理解Java日期时间操作的细节。 总之,理解和熟练掌握Java的日期时间操作对于开发人员来说至关重要,无论是在处理用户输入、记录日志还是进行复杂...
### Java操作日期大全 在Java开发中,对日期时间的操作是一项基本且重要的任务。本文将详细介绍如何使用Java处理各种日期类型及其转换、提取指定日期的各个组成部分、获取当前日期及指定格式、计算指定月份的天数...
### Java时间操作大全 #### 概述 在Java编程语言中,处理日期与时间是非常常见的需求之一。无论是开发Web应用还是桌面应用,掌握时间相关的类及其用法都至关重要。本篇文章将涵盖Java中与时间操作有关的所有基本...
本篇内容将深入讲解Java中的日期操作类,这对于Java初学者来说是非常重要的知识点。 首先,我们要了解Java中的基础日期类`java.util.Date`。这个类在早期的Java版本中被广泛使用,但其API设计存在一些问题,例如不...
Java Date操作大全 例举了所有java 日期操作
"操作日期的java包"即指的是Joda-Time这个第三方库。 Joda-Time是Java领域广泛使用的日期时间处理库,它的设计目标是替代Java标准库中的日期和时间API,因为后者在设计上存在一些问题,如可读性差、易用性不足等。...
### Java日期时间转换大全 在Java编程中,处理日期和时间是常见的需求,尤其是在涉及到数据库操作、文件命名、日志记录等场景时。本文将详细解析如何在Java中进行日期和时间的转换,涵盖从字符串到日期对象的转换,...
Java 日期加减操作详解 Java 中对日期的加减操作是指对日期的加减、年、月、日、天等操作。Java 提供了多种方式来实现日期的加减操作,本文将详细介绍其中的两种方法。 使用 java.util.Calender 实现日期加减 ...
根据给定的文件信息,...以上就是对Java日期类函数方法的整理和解释,涵盖了基本的日期操作,包括日期的格式化、解析、转换以及年份和月份的获取等。掌握这些函数和方法,能够帮助开发者更高效地处理日期相关的任务。
标题提到的"java实现的日期操作类"通常指的是使用这些类来完成特定的日期计算任务,如获取星期几或计算未来的日期。 `java.util.Date`是Java早期用来表示日期和时间的类,但它的API设计并不理想,易用性较差。因此...
以下是一些关于Java日期处理的关键知识点,这些知识点在给定的文件中有所提及: 1. **获取当前日期**: Java通过`java.util.Date`类可以获取服务器上的当前日期。创建一个Date对象即会返回当前系统时间,如`Date ...