`
kingmxj
  • 浏览: 187082 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

日期函数

    博客分类:
  • Java
阅读更多
/**
* <p>Title:Toten</p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2006</p>
* <p>Company: WinChannel </p>
* @author bxz
* @version 1.0
*/
package com.winchannel.common.util;

import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;

import org.apache.commons.logging.Log;

/**
* 2005-7-26 14:41:31
*/
public class DateUtility {
// private static Log log = LogUtil.getLoger(DateUtility.class);
private static final long ONE_DAY = 86400000l;

/**
* 获取当前日期字符串 格式为YYYY-MM-DD
*
* @return java.lang.String
*/
public static String getCurrentDate() {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String s = df.format(new Date());
return s;
}
/**
* 得到当前年,格式如:2008
* @return
*/
public static String getCurrentYear() {
SimpleDateFormat df = new SimpleDateFormat("yyyy");
String s = df.format(new Date());
return s;
}
/**
* 得到当前月,格式如:02
* @return
*/
public static String getCurrentMonth() {
SimpleDateFormat df = new SimpleDateFormat("MM");
String s = df.format(new Date());
return s;
}

public static String getDayInWeek(String sDate) {
Date date = strToDate(sDate);
SimpleDateFormat df = new SimpleDateFormat("EEE");
String s = df.format(date);
return s;
}
/**
* 返回日期类型
* @param str
* @return
*/
public static Date strToDate(String str) {
Date date = null;
if (str != null) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
try {
date = df.parse(str);
} catch (ParseException e) {
//log.error("DateParse Error!");
}
}
return date;
}
/**
* 返回日期类型
* @param str
* @return
*/
public static Date strToDateTime(String str) {
Date date = null;
if (str != null) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
date = df.parse(str);
} catch (ParseException e) {
//log.error("DateParse Error!");
}
}
return date;
}

public static String dateTimeToStr(Date date) {
String str = null;
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
if (date != null) {
str = df.format(date);
}
return str;
}

public static String dateToStr(Date date) {
String str = null;
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
if (date != null) {
str = df.format(date);
}
return str;
}

/**
* 转化成中文类型的日期
* @param date
* @return
*/
public static String dateToStrCh(Date date) {
String str = null;
SimpleDateFormat df = new SimpleDateFormat("yyyy年MM月dd日");
if (date != null) {
str = df.format(date);
}
return str;
}

/**
* 在原有的日期上面加i天
* @param date
* @param i
* @return
*/
public static Date add(Date date, int i) {
date = new Date(date.getTime() + i * ONE_DAY);
return date;
}

/**
* 加1天
* @param date
* @return
*/
public static Date add(Date date) {
return add(date, 1);
}

/**
* 减1天
* @param date
* @return
*/
public static Date sub(Date date) {
return add(date, -1);
}

public static String getBeforeDate() {
Date date = DateUtility.sub(new Date());
return DateUtility.dateToStr(date);

}
/**
* 得到当前时间,格式:yyyy-MM-dd HH:mm:ss
* @return
*/
public static String getCurrentDateTime() {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String s = df.format(new Date());
return s;
}
/**
* 得到当前时间(星期),格式:yyyy年MM月dd日 EEE
* @return
*/
public static String getCurrentDateWeek() {
SimpleDateFormat df = new SimpleDateFormat("yyyy年MM月dd日 EEE");
String s = df.format(new Date());
return s;

}
/**
* 得到当前时间(星期),格式:EEE, d MMM yyyy
* @return
*/
public static String getCurrentDateWeekEn() {
SimpleDateFormat df = new SimpleDateFormat("EEE, d MMM yyyy ",
new Locale("en"));
String s = df.format(new Date());
return s;

}

/**
* 返回月份之间的差。
* @param startYear
* @param startMonth
* @param endYear
* @param endMonth
* @return
*/
public static int compareMonth(String startYear, String startMonth,
String endYear, String endMonth) {
return (Integer.parseInt(endYear) - Integer.parseInt(startYear)) * 12
+ (Integer.parseInt(endMonth) - Integer.parseInt(startMonth));

}

/**
*
* @param sDate
* @return
*/
public static String getYearMonth(String sDate) {
Date date1 = null;
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String s = null;
try {
date1 = df.parse(sDate);
df.applyPattern("yyMM");
s = df.format(date1);
} catch (ParseException e) {
return s;
}
return s;
}

/**
*
* @param date
* @return
*/
public static String getYearMonth(Date date) {
SimpleDateFormat df = new SimpleDateFormat("yyMM");
String s = null;

s = df.format(date);

return s;

}

public static String getMonthDay(Date date) {
SimpleDateFormat df = new SimpleDateFormat("MM月dd日");
String s = null;

s = df.format(date);

return s;

}

public static String getYearMonthDay(String sDate) {
Date date1 = null;
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String s = null;
try {
date1 = df.parse(sDate);
df.applyPattern("yyMMdd");
s = df.format(date1);
} catch (ParseException e) {
return s;
}
return s;
}

public static String getStartQueryTime(String date) {
return DateUtility.dateToStr(DateUtility.strToDate(date)) + " 00:00:00";
}

public static String getEndQueryTime(String date) {
return DateUtility.dateToStr(DateUtility.strToDate(date)) + " 23:59:59";
}

/**

* @param sDate
* @return
*/
public static String getMonth(String sDate) {
Date date1 = null;
SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");
String s = null;
try {
date1 = df.parse(sDate);
df.applyPattern("MM");
s = df.format(date1);
} catch (ParseException e) {
return s;
}
return s;

}

/**
*
* @param sDate1
* @param sDate2
* @return
*/
public static int compareDate(String sDate1, String sDate2) {

Date date1 = null;
Date date2 = null;
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");

try {
date1 = dateFormat.parse(sDate1);
date2 = dateFormat.parse(sDate2);
} catch (ParseException e) {

}

long dif = 0;
if (date2.after(date1))
dif = (date2.getTime() - date1.getTime()) / 1000 / 60 / 60 / 24;
else
dif = (date1.getTime() - date2.getTime()) / 1000 / 60 / 60 / 24;

return (int) dif;
}

public static int getDate(String sDate, String sTag) {
int iSecondMinusPos = sDate.lastIndexOf('-');
if (sTag.equalsIgnoreCase("y")) {
return Integer.parseInt(sDate.substring(0, 4));
} else if (sTag.equalsIgnoreCase("m")) {
return Integer.parseInt(sDate.substring(5, iSecondMinusPos));
} else
return Integer.parseInt(sDate.substring(iSecondMinusPos + 1));
}

public static int getDayOfWeek() {

Calendar toDay = Calendar.getInstance();

toDay.setFirstDayOfWeek(Calendar.MONDAY);

int ret = toDay.get(Calendar.DAY_OF_WEEK) - 1;

if (ret == 0) {
ret = 7;
}

return ret;
}

public static String getFirstDayOfMonth() {
Calendar ca = Calendar.getInstance();
ca.setTime(new Date()); //   someDate   为你要获取的那个月的时间  
ca.set(Calendar.DAY_OF_MONTH, 1);
Date firstDate = ca.getTime();
ca.add(Calendar.MONTH, 1);
ca.add(Calendar.DAY_OF_MONTH, -1);
Date lastDate = ca.getTime();
return dateToStr(firstDate);

}
public static String getFirstDayOfMonth(java.util.Calendar ca) {
// Calendar ca = Calendar.getInstance();
// ca.setTime(new Date()); //   someDate   为你要获取的那个月的时间  
ca.set(Calendar.DAY_OF_MONTH, 1);
Date firstDate = ca.getTime();
ca.add(Calendar.MONTH, 1);
ca.add(Calendar.DAY_OF_MONTH, -1);
Date lastDate = ca.getTime();
return dateToStr(firstDate);

}
/**
* @author 包忠华
* @description 获取当前时间的下一年
* @return String
*/
public static String getNextYearDate() {
Calendar ca = Calendar.getInstance();
ca.setTime(new Date()); //   someDate   为你要获取的那个月的时间  
ca.set(Calendar.DAY_OF_MONTH, 1);
ca.add(Calendar.YEAR, 1);
ca.add(Calendar.MONTH, 1);
ca.add(Calendar.DAY_OF_MONTH, -1);
Date lastDate = ca.getTime();
return dateToStr(lastDate);
}
public static String getNextYearDateBystr(String str) {
Date d=DateUtility.strToDate(str);
Calendar ca = Calendar.getInstance();
ca.setTime(d);
ca.set(Calendar.DAY_OF_MONTH, 1);
ca.add(Calendar.YEAR, 1);
ca.add(Calendar.MONTH, 1);
ca.add(Calendar.DAY_OF_MONTH, -1);
Date lastDate = ca.getTime();
return dateToStr(lastDate);
}
public static String getLastDayOfMonth() {
Calendar ca = Calendar.getInstance();
ca.setTime(new Date()); //   someDate   为你要获取的那个月的时间  
ca.set(Calendar.DAY_OF_MONTH, 1);
Date firstDate = ca.getTime();
ca.add(Calendar.MONTH, 1);
ca.add(Calendar.DAY_OF_MONTH, -1);
Date lastDate = ca.getTime();
return dateToStr(lastDate);
}
public static String getLastDayOfMonth(Calendar ca) {
// Calendar ca = Calendar.getInstance();
// ca.setTime(new Date()); //   someDate   为你要获取的那个月的时间  
ca.set(Calendar.DAY_OF_MONTH, 1);
Date firstDate = ca.getTime();
ca.add(Calendar.MONTH, 1);
ca.add(Calendar.DAY_OF_MONTH, -1);
Date lastDate = ca.getTime();
return dateToStr(lastDate);
}

public static String getDayInWeek() {
Calendar ca = Calendar.getInstance();
ca.setTime(new Date());
String ret = String.valueOf(ca.get(Calendar.DAY_OF_WEEK) - 1);
return ret;

}



public static String getYearAndMonths(Date date) {
SimpleDateFormat df = new SimpleDateFormat("yy-MM");
String s = null;

s = df.format(date);

return s;

}
public static String getYearAndMonth(Date date) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM");
String s = null;

s = df.format(date);

return s;

}
public final static Timestamp getTimeOfStr ( String dateStr ) {
        DateFormat df = new SimpleDateFormat ( "yyyy-MM" );
        Timestamp time = null;
        try {
            java.util.Date da = df.parse ( dateStr );
            time = new Timestamp ( da.getTime () );
        }
        catch ( Exception e ) {
            e.printStackTrace ();
        }
        return time;

    }
}
分享到:
评论

相关推荐

    PB 12个用一条语句写成的有关日期函数_PB日期函数_

    标题中的“PB 12个用一条语句写成的有关日期函数”指的是在PowerBuilder(PB)编程环境中,利用单个表达式实现的12种不同的日期处理函数。这些函数通常涉及日期的转换、计算以及提取特定日期部分等操作。在PB中,...

    日期函数_vb日期函数_

    在VB(Visual Basic)编程语言中,日期函数是处理日期和时间值的重要工具。这些函数允许程序员进行日期的计算、格式化以及与日期相关的各种操作。以下是一些关键的VB日期函数及其详细说明: 1. **Date()**:这个...

    Gbase 8s内置函数之日期函数

    Gbase 8s内置函数之日期函数 Gbase 8s是一款功能强大且高性能的关系数据库管理系统,它提供了一系列的内置函数,方便开发者进行数据处理和分析。其中,日期函数是Gbase 8s内置函数中的一部分,主要用于处理和操作...

    MYSQL 日期函数大全

    MYSQL 日期函数大全,供大家一起共同分享学习。

    Clickhouse 时间日期函数

    ClickHouse是一个开源的列式数据库管理系统,它提供了丰富的时间日期函数来处理和操作时间和日期数据。以下是ClickHouse中常用的时间日期函数的简介: 1. toDate(date_expression):将日期表达式转换为日期类型。...

    ABAP日期函数(求月末日,第几周,search help 只显示年月) 使用方法实例

    ABAP 日期函数使用方法实例 ABAP 日期函数是 SAP 系统中用于处理日期和时间的函数集合。在实际应用中,日期函数的使用非常广泛,例如计算两个日期间的工作天数、获取当前月份的第一天和最后一天、计算日期所在的...

    SAP HANA跟我学HANA系列之日期函数总结

    ### SAP HANA跟我学HANA系列之日期函数总结 #### 1. ADD_DAYS函数 **功能**: 计算指定日期加上指定天数后的日期。 **语法**: `ADD_DAYS(, )` - `&lt;datetime&gt;`: 可以是`DATE`、`TIMESTAMP`或`SECONDDATE`类型的...

    sybase日期函数全解析

    在Sybase数据库系统中,日期和时间的处理是数据库操作中的常见任务,这涉及到一系列的日期函数。本文将深入解析Sybase的四个主要日期函数及其应用。 1. **getdate()** 函数: - `getdate()` 用于获取当前系统时间...

    pb 日期函数

    根据给定文件的信息,我们可以梳理出与“pb 日期函数”相关的多个知识点。这些知识点主要集中在日期函数的应用、计算及转换上。以下是对各部分详细解释: ### 1. 获取年份的最后两位数字(Ф(ݲintls_yearزstring)...

    sql日期函数大全

    ### SQL日期函数大全:深入解析与实用技巧 在SQL中,日期函数是处理时间数据的强大工具,它们能够帮助我们执行日期的加减、比较、格式化等操作,从而在数据分析和报告生成中发挥关键作用。本文将围绕标题“SQL日期...

    mysql 日期函数相关操作

    以下是对几个常用日期函数的详细解析: ### 1. `TO_DAYS(date)` `TO_DAYS()`函数将一个日期转换为从“0000-00-00”到指定日期的天数。这在比较两个日期或计算两个日期之间的天数差时非常有用。 例如: ```sql ...

    Oracle日期函数练习

    Oracle 日期函数练习 Oracle 日期函数是 Oracle 数据库中的一组功能强大且广泛使用的函数,它们可以对日期进行各种操作和计算,本次练习涵盖了 Oracle 中常用的日期函数,包括获取当前系统时间、对日期的月进行加减...

    sql中日期函数大全(附详细的例子)

    SQL日期函数大全 SQL日期函数是数据库管理系统中用于处理日期和时间的函数,以下是SQL日期函数大全,涵盖了几乎所有的时间操作函数,并提供了详细的例子和执行结果分析。 1. 获取当前系统日期和时间 使用 `...

    SQLSERVER时间日期函数详解

    SQLSERVER 时间日期函数详解 SQL Server 提供了多种时间日期函数,帮助开发者快速处理日期和时间相关的操作。下面将对这些函数进行详解,并提供示例。 1. GetDate() 函数 GetDate() 函数用于返回当前系统的日期和...

    mysql时间日期函数

    在MySQL数据库中,时间日期函数是处理与时间相关的数据时不可或缺的一部分。这些函数提供了丰富的功能,可以帮助用户在查询、更新或插入数据时精确地操作日期和时间。下面将详细介绍几个核心的时间日期函数及其应用...

    Oracle日期函数大全[文].pdf

    Oracle日期函数大全 Oracle日期函数大全是Oracle数据库中处理日期和时间的函数大全,包括TO_DATE、TO_CHAR等函数。这些函数可以对日期和时间进行各种操作,例如将日期转换为字符串、获取当前日期和时间、计算两个...

    Office2016办公软件_Excel 2016十大常用函数_Excel中的文本日期函数.pdf

    - 虽然题目主要集中在文本函数上,Excel的日期函数同样重要,如 **DATE()** 用于创建日期,**TODAY()** 获取当前日期,**NOW()** 获取当前日期和时间,**YEAR()**、**MONTH()** 和 **DAY()** 提取日期的年、月、日...

    oracle自定义日期函数

    Oracle 自定义日期函数 Oracle 日期处理函数是数据库管理系统中非常重要的一部分,最近看到有人在做 T-SQL 与 PL/SQL 的转化,问了些有关时间函数的处理。在 PL/SQL 中,Oracle 提供了其他的方法来处理日期函数,...

    js的日期函数详解js的日期函数详解

    js的日期函数详解js的日期函数详解js的日期函数详解js的日期函数详解js的日期函数详解js的日期函数详解

    在sql中常用的日期函数使用说明

    在SQL中,日期函数是处理和操作日期及时间的关键工具,它们帮助我们执行各种复杂的日期时间计算,如计算两个日期之间的差异、提取日期中的特定部分等。本文将深入解析SQL中常用的日期函数之一:`DatePart`函数及其...

Global site tag (gtag.js) - Google Analytics