java date时间 辅助常用方法

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;


import sun.applet.Main;


/**
 * 日期工具包
 * 
 * @author XiaoGong
 * 
 */
public class DateUtils {
private static SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
private static SimpleDateFormat sdf6 = new SimpleDateFormat("yyyy-MM");
private static SimpleDateFormat sdf2 = new SimpleDateFormat(
"yyyy-MM-dd HH:mm");
private static SimpleDateFormat sdf3 = new SimpleDateFormat("yyMMddHHmmss");
private static SimpleDateFormat sdf4 = new SimpleDateFormat("yyyyMMdd");
private static SimpleDateFormat sdf5 = new SimpleDateFormat("yyyyMM");
private static SimpleDateFormat sdf7 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");



public static Date getStringToDate(String s){
try {
Date date = sdf7.parse(s);
return date;
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}

public static Date getDateToString(String s) {
try {
Date date1 = sdf2.parse(s);
return date1;
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}



public static String getDateToStr1(String s) {
try {
Date date = sdf1.parse(s);
return sdf4.format(date);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}


public static String getDateToStr2(String s) {
try {
Date date = sdf1.parse(s);
return sdf4.format(date);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}


public static Date getDateToStr3(String s) {
try {
Date date1 = sdf3.parse(s);
String sDate = sdf2.format(date1);
return sdf2.parse(sDate);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}


public static String getCurrentDate() {
SimpleDateFormat sdf = new SimpleDateFormat("yyMMddHHmmss");
return sdf.format(new Date());
}


// 当前时间("yyyy-MM-dd HH:mm")
public static String getCurrentToDate() {
String sDate = sdf2.format(new Date());
return sDate;
}


// 当前时间("yyyy-MM-dd HH:mm")
public static String getCurrentDay() {
String sDate = sdf1.format(new Date());
sDate += " 23:59";
return sDate;
}


// 当前时间("yyyy-MM-dd")
public static String getday() {
String sDate = sdf1.format(new Date());
return sDate;
}


// 当前时间("yyyy-MM")
public static String getmonth() {
String sDate = sdf6.format(new Date());
return sDate;
}


public static String getFormatDate(String s) {
try {
Date date = sdf2.parse(s);
return sdf3.format(date);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}


public static String formatDate(String s) {
try {
Date date = sdf1.parse(s);
return sdf4.format(date);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}


public static String formatDateToStr(Date date) {
String str = sdf2.format(date);
return str;
}


// 第一种方式根据日期获取星期
@SuppressWarnings("deprecation")
public static String getWeek(String date) {
String week = "";
String[] day = new String[] { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五",
"星期六" };


DateFormat df = new SimpleDateFormat("yyyy-MM-dd");// 输入的日期格式必须是这种
try {
Date d = df.parse(date);
week = day[d.getDay()];
} catch (ParseException e) {
e.printStackTrace();
}
return week;
}


// 第二种方式根据日期获取星期
/**
* 以下摘自java-doc中 Letter Date or Time Component Presentation Examples G Era
* designator Text AD y Year Year 1996; 96 M Month in year Month July; Jul;
* 07 w Week in year Number 27 W Week in month Number 2 D Day in year Number
* 189 d Day in month Number 10 F Day of week in month Number 2 E Day in
* week Text Tuesday; Tue a Am/pm marker Text PM H Hour in day (0-23) Number
* 0 k Hour in day (1-24) Number 24 K Hour in am/pm (0-11) Number 0 h Hour
* in am/pm (1-12) Number 12 m Minute in hour Number 30 s Second in minute
* Number 55 S Millisecond Number 978 z Time zone General time zone Pacific
* Standard Time; PST; GMT-08:00 Z Time zone RFC 822 time zone -0800
*/
public static String getWeekday(String date) {// 必须yyyy-MM-dd
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sdw = new SimpleDateFormat("E"); // 这里面填什么参考上面的数据
Date d = null;
try {
d = sd.parse(date);
} catch (ParseException e) {
e.printStackTrace();
}
return sdw.format(d); // 把日期进行格式化
}


public static String getSystemCurrentDate() {
return sdf4.format(new Date());
}


public static String getSystemCurrentMonth() {
return sdf5.format(new Date());
}


public static String getformatdate(String dateTime) {
String[] subDate = dateTime.split("-");// 2012-12-12
String dateStr = subDate[0] + "年" + subDate[1] + "月" + subDate[2] + "日";
return dateStr;
}


public static String getformatmonth(String dateTime) {
String[] subDate = dateTime.split("-");// 2012-12-12
String dateStr = subDate[0] + subDate[1];
return dateStr;
}


public static Integer getDateDay(String dateTime) {
String[] subDate = dateTime.split("-");// 2012-12-12
return Integer.parseInt(subDate[2]);
}


// 求两个日期间的日期
public static List<Integer> myDataRange(String begindata, String enddata)
throws ParseException, java.text.ParseException {
List<Integer> datarang = new ArrayList<Integer>();
if (begindata != enddata) {
Calendar startCalendar = Calendar.getInstance();
Calendar endCalendar = Calendar.getInstance();
SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");
Date startDate = (Date) df.parse(begindata);
startCalendar.setTime(startDate);
Date endDate = (Date) df.parse(enddata);
endCalendar.setTime(endDate);
datarang.add(Integer.parseInt(begindata));// 添加第一个开始时间
while (true) {
startCalendar.add(Calendar.DAY_OF_MONTH, 1);
if (startCalendar.getTimeInMillis() <= endCalendar
.getTimeInMillis()) {
datarang.add(Integer.parseInt(df.format(startCalendar
.getTime())));
} else {
break;


}
}
}
return datarang;
}


// 格式还原
public static String mytocurrent(Integer date) {
String subDate = date.toString().substring(0, 4) + "-"
+ date.toString().substring(4, 6) + "-"
+ date.toString().substring(6, 8);
return subDate;
}


// 今日,昨日,前日,明日,本日
public String todayYestdayYestdaybefore(int daynum) {
Date date = new Date();// 取时间
Calendar calendar = new GregorianCalendar();
calendar.setTime(date);
calendar.add(calendar.DATE, daynum);// 把日期往后增加一天.整数往后推,负数往前移动
date = calendar.getTime(); // 这个时间就是日期往后推一天的结果
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String dateString = formatter.format(date);
return dateString;
}


// 上月,本月。
public String yestmonth(int daynum) {
Date date = new Date();// 取时间
Calendar calendar = new GregorianCalendar();
calendar.setTime(date);
calendar.add(calendar.MONDAY, daynum);// 把日期往后增加一天.整数往后推,负数往前移动
date = calendar.getTime(); // 这个时间就是日期往后推一天的结果
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM");
String monthString = formatter.format(date);
return monthString;
}


// 最近7天
public static String sevenDay() {
Date date = new Date();// 取时间
Calendar calendar = new GregorianCalendar();
calendar.setTime(date);
calendar.add(calendar.DATE, -7);// 把日期往后增加一天.整数往后推,负数往前移动
date = calendar.getTime(); // 这个时间就是日期往后推一天的结果
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String dateString = formatter.format(date);
return dateString;
}


// 一个月的第一天 2013-08-01 00:00
public static String firstMonth() {
SimpleDateFormat df1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
Date date = new Date();
Date da = new Date(date.getYear(), date.getMonth(), 01);
String startTime = df1.format(da);
return startTime;
}


// 一个月的第一天 2013-08-01
public static String firstMonthnoHH() {
SimpleDateFormat df1 = new SimpleDateFormat("yyyy-MM-dd");
Date date = new Date();
Date da = new Date(date.getYear(), date.getMonth(), 01);
String startTime = df1.format(da);
return startTime;
}


// 一个月的最后一天 2013-08-31
public static String getLastDayOfMonth() {
SimpleDateFormat df1 = new SimpleDateFormat("yyyy-MM-dd");
Date sDate1 = new Date();
Calendar cDay1 = Calendar.getInstance();
cDay1.setTime(sDate1);
final int lastDay = cDay1.getActualMaximum(Calendar.DAY_OF_MONTH);
Date lastDate = cDay1.getTime();
lastDate.setDate(lastDay);
return df1.format(lastDate);
}

//时间戳转时间字符串
public static Date getStrTime(String cc_time) {
String re_StrTime = null;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH mmss");
long lcc_time = Long.valueOf(cc_time);
re_StrTime = sdf.format(new Date(lcc_time * 1000L));

Date date1=new Date();
try {
date1 = sdf3.parse(re_StrTime);
} catch (ParseException e) {
e.printStackTrace();
}
String sDate = sdf2.format(date1);
try {
return sdf2.parse(sDate);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}




public static String getformatdateNOwenzi(String dateTime) {
String[] subDate = dateTime.split("-");// 2012-12-12
String dateStr = subDate[0] + subDate[1] + subDate[2];
return dateStr;
}


}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值