package com.lhcard.common;
/**
* <p>Title: 时间格式转化与计算</p>
*/
import java.util.Calendar;
import java.util.Date;
import java.text.*;
public class DateTime {
public DateTime() {
}
/**
* 取得系统当前时间
* @return String yyyy-mm-dd
*/
public static String getCurrentDate() {
Calendar rightNow = Calendar.getInstance();
int year = rightNow.get(rightNow.YEAR);
int month = rightNow.get(rightNow.MONTH) + 1;
int day = rightNow.get(rightNow.DATE);
return year + "-" + month + "-" + day;
}
/**
* 取得系统当前时间
* @return String yyyy年mm月dd日
*/
public static String getCurrentDate1() {
Calendar rightNow = Calendar.getInstance();
int year = rightNow.get(rightNow.YEAR);
int month = rightNow.get(rightNow.MONTH) + 1;
int day = rightNow.get(rightNow.DATE);
return year + "年" + month + "月" + day + "日";
}
/**
* 取得系统当前时间
* @return String yyyymmdd
*/
public static String getCurrentDate2() {
Calendar rightNow = Calendar.getInstance();
int year = rightNow.get(rightNow.YEAR);
int month = rightNow.get(rightNow.MONTH) + 1;
int day = rightNow.get(rightNow.DATE);
return year + "" + month + "" + day;
}
/**
* 取得系统当前时间
* @return String yyyy-mm
*/
public static String getCurrentDate3() {
Calendar rightNow = Calendar.getInstance();
int year = rightNow.get(rightNow.YEAR);
int month = rightNow.get(rightNow.MONTH) + 1;
//int day = rightNow.get(rightNow.DATE);
return year + "-" + month;
}
/**
* 取得系统当前时间
* @return String yyyyMMddhhmmss
*/
public static String getCurrentDate4() {
Calendar c = Calendar.getInstance();
c.add(c.SECOND, 0);
return "" + c.get(c.YEAR) + "" + (c.get(c.MONTH) + 1) + "" + c.get(c.DATE)+""+c.get(c.HOUR_OF_DAY)+""+c.get(c.MINUTE)+""+c.get(c.SECOND);
}
/**
* 取得系统当前时间
* @return String yyyy-MM-dd hh:mm:ss
*/
/* public String getCurrentDate5() {
SimpleDateFormat simpleDateFormat =new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
java.util.Date date = new java.util.Date();
String time = simpleDateFormat.format(date);
return time;
}
*/
/**
* 取得系统当前时间
* @return String yyyy-MM-dd hh:mm:ss
*/
public static String getCurrentDate5(){
Calendar c = Calendar.getInstance();
c.add(c.SECOND, 0);
return "" + c.get(c.YEAR) + "-" + (c.get(c.MONTH) + 1) + "-" + c.get(c.DATE)+" "+c.get(c.HOUR_OF_DAY)+":"+c.get(c.MINUTE)+":"+c.get(c.SECOND);
}
/**
* 取得系统当前时间 常用于订单号
* @return String yyyyMMddhhmmss
*/
public static String getCurrentDate6() {
Calendar c = Calendar.getInstance();
c.add(c.SECOND, 0);
String year=c.get(c.YEAR)+"";
return "" + year.subSequence(2,year.length())+ "" + (c.get(c.MONTH) + 1) + "" + c.get(c.DATE)+"-"+c.get(c.HOUR_OF_DAY)+""+c.get(c.MINUTE)+""+c.get(c.SECOND)+"-"+c.get(c.MILLISECOND);
}
//YYYYMMDD
public static String getCurrentDate7() {
Calendar c = Calendar.getInstance();
c.add(c.SECOND, 0);
String year=c.get(c.YEAR)+"";
int month=c.get(c.MONTH) + 1;
String strmonth=month+"";
if(month<10){
strmonth="0"+month;
}
int day=c.get(c.DATE);
String strday=day+"";
if(day<10){
strday="0"+day;
}
return "" + year+ "" + strmonth + "" + strday;
}
//hhmmsswww
public static String getCurrentDate8() {
Calendar c = Calendar.getInstance();
c.add(c.SECOND, 0);
int hh=c.get(c.HOUR_OF_DAY);
String strhh=hh+"";
if(hh<10){
strhh="0"+hh;
}
int mm=c.get(c.MINUTE);
String strmm=mm+"";
if(mm<10){
strmm="0"+mm;
}
int ss=c.get(c.SECOND);
String strss=ss+"";
if(ss<10){
strss="0"+ss;
}
int www=c.get(c.MILLISECOND);
String strwww=www+"";
if(www<10){
strwww="00"+www;
}if(9<www&&www<100){
strwww="0"+www;
}
return strhh+""+strmm+""+strss+""+strwww;
}
/**
* 取得系统当前时间前n个月的相对应的一天
* @param n int
* @return String yyyy-mm-dd
*/
public static String getNMonthBeforeCurrentDay(int n) {
Calendar c = Calendar.getInstance();
c.add(c.MONTH, -n);
return "" + c.get(c.YEAR) + "-" + (c.get(c.MONTH) + 1) + "-" + c.get(c.DATE);
}
/**
* 取得系统当前时间后n个月的相对应的一天
* @param n int
* @return String yyyy-mm-dd
*/
public static String getNMonthAfterCurrentDay(int n) {
Calendar c = Calendar.getInstance();
c.add(c.MONTH, n);
return "" + c.get(c.YEAR) + "-" + (c.get(c.MONTH) + 1) + "-" + c.get(c.DATE);
}
/**
* 取得系统当前时间前n天
* @param n int
* @return String yyyy-mm-dd
*/
public static String getNDayBeforeCurrentDate(int n) {
Calendar c = Calendar.getInstance();
c.add(c.DAY_OF_MONTH, -n);
return "" + c.get(c.YEAR) + "-" + (c.get(c.MONTH) + 1) + "-" + c.get(c.DATE);
}
/**
* 取得系统当前时间后n天
* @param n int
* @return String yyyy-mm-dd
*/
public static String getNDayAfterCurrentDate(int n) {
Calendar c = Calendar.getInstance();
c.add(c.DAY_OF_MONTH, n);
return "" + c.get(c.YEAR) + "-" + (c.get(c.MONTH) + 1) + "-" + c.get(c.DATE);
}
public String getNDayAfterCurrentDate1(int n) {
Calendar c = Calendar.getInstance();
c.add(c.DAY_OF_MONTH, n);
return "" + c.get(c.YEAR) + "-" + (c.get(c.MONTH) + 1) + "-" + c.get(c.DATE)+" "+c.get(c.HOUR_OF_DAY)+":"+c.get(c.MINUTE)+":"+c.get(c.SECOND);
}
//---------------------------------------------------------------------
//取过去一个时间对应的系统当年的一天
public static String getCurrentDateAfterPastDate(String sPastDate) {
if (sPastDate != null && !sPastDate.equals("")) {
Date date = switchStringToDate(sPastDate);
Calendar c = Calendar.getInstance();
c.setTime(date);
int iPastYear = c.get(c.YEAR);
Calendar c1 = Calendar.getInstance();
int iCurrentYear = c1.get(c1.YEAR);
c.add(c.YEAR, iCurrentYear - iPastYear);
return "" + c.get(c.YEAR) + "-" + (c.get(c.MONTH) + 1) + "-" +
c.get(c.DATE);
}
else {
return null;
}
}
/**
* 将一个日期字符串转化成日期
* @param sDate String
* @return Date yyyy-mm-dd
*/
public static Date switchStringToDate(String sDate) {
Date date = null;
try {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
date = df.parse(sDate);
}
catch (Exception e) {
System.out.println("日期转换失败:" + e.getMessage());
}
return date;
}
/**
* 输入两个字符串型的日期,比较两者的大小
* @param fromDate String
* @param toDate String
* @return boolean before为true
*/
public static boolean compareTwoDateBigOrSmall(String fromDate, String toDate) {
Date dateFrom = switchStringToDate(fromDate);
Date dateTo = switchStringToDate(toDate);
if (dateFrom.before(dateTo)) {
return true;
}
else {
return false;
}
}
/**
* 将一个日期字符串转化成Calendar
* @param sDate String
* @return Calendar
*/
public static Calendar switchStringToCalendar(String sDate) {
Date date = switchStringToDate(sDate);
Calendar c = Calendar.getInstance();
c.setTime(date);
return c;
}
/**
* 将一个日期转化成Calendar
* @param date Date
* @return Calendar
*/
public static Calendar switchStringToCalendar(Date date) {
Calendar c = Calendar.getInstance();
c.setTime(date);
return c;
}
public static String string2Date(String dateString)
throws java.lang.Exception {
/*DateFormat dateFormat;
dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss");
dateFormat.setLenient(false);
java.util.Date timeDate = dateFormat.parse(dateString);//util类型
//java.sql.Date dateTime = new java.sql.Date(timeDate.getTime());//sql类型
java.sql.Timestamp dateTime = new java.sql.Timestamp(timeDate.getTime());//Timestamp类型
*/
SimpleDateFormat newk = new SimpleDateFormat ("yyyy.MM.dd hh:mm:ss");
SimpleDateFormat old = new SimpleDateFormat("MMM dd hh:mm:ss yyyy");
String strDate = "Mar 22 00:42:00 2002";
Date d = old.parse(strDate);
System.out.println(newk.format(d));
return newk.format(d);
}
/**
* 取得某个时间前n个月的相对应的一天
* @param sDate String
* @param n int
* @return String yyyy-mm-dd
*/
public static String getNMonthBeforeOneDay(String sDate, int n) {
Calendar c = switchStringToCalendar(sDate);
c.add(c.MONTH, -n);
return "" + c.get(c.YEAR) + "-" + (c.get(c.MONTH) + 1) + "-" + c.get(c.DATE);
}
//取得某个时间后n个月的相对应的一天
public static String getNMonthAfterOneDay(String sDate, int n) {
Calendar c = switchStringToCalendar(sDate);
c.add(c.MONTH, n);
return "" + c.get(c.YEAR) + "-" + (c.get(c.MONTH) + 1) + "-" + c.get(c.DATE);
}
//取得某个时间前n天,格式为yyyy-mm-dd
public static String getNDayBeforeOneDate(String sDate, int n) {
Calendar c = switchStringToCalendar(sDate);
c.add(c.DAY_OF_MONTH, -n);
return "" + c.get(c.YEAR) + "-" + (c.get(c.MONTH) + 1) + "-" + c.get(c.DATE);
}
//取得某个时间后n天,格式为yyyy-mm-dd
public static String getNDayAfterOneDate(String sDate, int n) {
Calendar c = switchStringToCalendar(sDate);
c.add(c.DAY_OF_MONTH, n);
return "" + c.get(c.YEAR) + "-" + (c.get(c.MONTH) + 1) + "-" + c.get(c.DATE);
}
//判断系统当前时间是不是润年
public static boolean isRunNian() {
java.util.Calendar rightNow = java.util.Calendar.getInstance();
int year = rightNow.get(rightNow.YEAR);
if (0 == year % 4 && (year % 100 != 0 || year % 400 == 0)) {
return true;
}
else {
return false;
}
}
public static void main(String args[]) {
DateTime a = new DateTime();
try{
//System.out.println(a.getNDayAfterCurrentDate(1));
// System.out.println(a.getNDayAfterCurrentDate(0));
// System.out.println(a.compareTwoDateBigOrSmall("2005-12-27 11:01:45.0","2005-12-10 13:16:58.0"));
System.out.println(a.switchStringToDate("2007-1-5"));
}catch(Exception e){System.err.println();}
}
}
分享到:
相关推荐
`System.TimeSpan`类则表示一个时间间隔,它可以用来表示两个DateTime之间的差值。TimeSpan可以通过总毫秒、秒、分钟、小时或天数来创建,比如`new TimeSpan(hours, minutes, seconds)`。它也有许多方便的方法,如`...
C++上机实验:类的定义与应用。定义一个时间类。
在这个实验报告中,学生被要求创建一个名为`Time`的类,该类表示时间,并且要实现时间的加法和减法操作,以及输入和输出功能,所有这些都是通过运算符重载实现的。 首先,运算符重载的重要性在于它可以提高代码的...
2. **类结构**:介绍类的属性和方法,如可能包含一个`LocalDateTime`或`Date`对象来存储时间信息,以及各种操作时间的方法,如获取当前时间、比较时间、格式化输出等。 3. **方法实现**:博主可能会详细解释每个...
Java操作时间工具类是开发者日常工作中经常会用到的模块,特别是在处理日期和时间相关的业务逻辑时。本工具类主要是为了方便地对日期和时间进行格式化、比较、计算等操作,提高开发效率。下面我们将详细探讨Java中...
我自己写的一个时间组建,主要是计算两个时间段之间的相隔时间 和一个时间与现在时间之间的时间差....
定义一个时间类用来保存时间,通过重载操作符“+”实现两个时间的相加
一个日期时间加上分钟数,得到一个新的日期时间 2.判断当前时间是否在时间段之内 3.根据默认的格式格式化时间 4.根据指定的格式格式化时间 5.改变月份 6.改变天数 7.计算天数间隔 8.Date转String 指定格式 9. String...
在这个特定的场景中,我们讨论的是一个名为“时钟类”的概念,它用于表示时间,具有时、分、秒这三个基本属性。这个类的设计目的是通过运算符重载提供一种方便的方式来处理时间,使得代码更加直观和易于理解。 首先...
因此,`java.util.Calendar`类被引入,它是一个抽象类,提供更灵活的日期和时间操作,包括添加、减去日期字段和转换为不同格式的功能。尽管如此,`Calendar`仍然被认为复杂且不易用。 随着Java 8的发布,`java.time...
2. **时间运算类**:在软件开发中,时间运算类是一种自定义数据类型,用于表示和操作时间。这类类通常会包含各种属性(如小时、分钟、秒)以及方法(如加法、减法),以便进行时间的算术运算。在这个测试工程中,...
这个压缩包包含了一系列C#库文件,涵盖了多个关键领域的功能,如XML处理、时间操作、视频转换、文件操作、FTP通信以及用户界面提示。这些库文件极大地提高了开发效率,使程序员能够快速实现特定功能,而无需从头编写...
操作日期时间的工具类,封装的比较完善,可以获取最小时间, 获取最大时间,获取今天最小时间,获取今天最大时间,获取明天的最小时间,获取明天的最大时间,获取昨天的最小时间,获取昨天的最大时间,获取指定月第...
在Java编程语言中,处理日期和...总之,一个良好的日期时间工具类应该简化日期时间的常见操作,提高代码的可读性和可维护性。在Java 8及更高版本中,可以考虑利用`java.time`包提供的新特性来进一步优化工具类的设计。
ExpressiveDate是一个专门为PHP设计的日期时间类扩展,它的出现是为了提供更加流畅和方便的方式来处理日期和时间。在PHP的内置DateTime类的基础上,ExpressiveDate增强了功能并优化了API,使得开发者可以更高效地...
java中常用的时间操作;如日期,时间戳,日历,字符串相互转化;时间差等常用日期功能。
一个VB.NET连接和操作Sql Server的类 一个VB.NET连接和操作Sql Server的类
标题为"一个完整的PHP时间类.zip"的压缩包文件,很显然包含了一个自定义的时间类,用于扩展PHP的内置功能,提供更方便、灵活的日期和时间操作。 首先,让我们理解PHP中的日期和时间处理基础。PHP内建的DateTime类是...