java string 日期格式_Java 日期格式和String 转换

/**

* 实现对时间类型的格式处理.

*/

package com.eeechina.framework.util;

import java.text.ParseException;

import java.text.ParsePosition;

import java.text.SimpleDateFormat;

import java.util.ArrayList;

import java.util.Calendar;

import java.util.Date;

import java.util.List;

/**

* 实现对时间类型的格式处理.

*

*

*

*/

public class DateHelper {

/**

* 将java.util.Date 格式转换为字符数组格式'2009-08'

* 返回字符数组数组0位代表年,数组1位代表月

*

* @param time

*            Date 日期

* @return String字符

*/

public static String fmtToStringYearMonth(Date time) {

if (null == time) {

return "";

}

try {

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM");

String ymd = format.format(time);

return ymd;

} catch (Exception e) {

}

return "";

}

/**

* 字符串转换为java.util.Date

* 支持格式为 yyyy.MM.dd G 'at' hh:mm:ss z 如 '2002-1-1 AD at 22:10:59 PSD'

* yy/MM/dd HH:mm:ss 如 '2002/1/1 17:55:00'

* yy/MM/dd HH:mm:ss pm 如 '2002/1/1 17:55:00 pm'

* yy-MM-dd HH:mm:ss 如 '2002-1-1 17:55:00' 

* yy-MM-dd HH:mm:ss am 如 '2002-1-1 17:55:00 am' 

*

* @param time

*            String 字符串

* @return Date 日期

*/

public static Date stringToDate(String time) {

if (null == time || 0 > time.length()) {

return null;

}

try {

SimpleDateFormat formatter;

int tempPos = time.indexOf("AD");

time = time.trim();

formatter = new SimpleDateFormat("yyyy.MM.dd G 'at' hh:mm:ss z");

if (tempPos > -1) {

time = time.substring(0, tempPos) + "公元"

+ time.substring(tempPos + "AD".length());// china

formatter = new SimpleDateFormat("yyyy.MM.dd G 'at' hh:mm:ss z");

}

tempPos = time.indexOf("-");

if (tempPos > -1 && (time.indexOf(" ") 

formatter = new SimpleDateFormat("yyyyMMddHHmmssZ");

} else if ((time.indexOf("/") > -1) && (time.indexOf(" ") > -1)) {

formatter = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");

} else if ((time.indexOf("-") > -1) && (time.indexOf(" ") > -1)) {

formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

} else if ((time.indexOf("/") > -1) && (time.indexOf("am") > -1)

|| (time.indexOf("pm") > -1)) {

formatter = new SimpleDateFormat("yyyy-MM-dd KK:mm:ss a");

} else if ((time.indexOf("-") > -1) && (time.indexOf("am") > -1)

|| (time.indexOf("pm") > -1)) {

formatter = new SimpleDateFormat("yyyy-MM-dd KK:mm:ss a");

}

ParsePosition pos = new ParsePosition(0);

java.util.Date ctime = formatter.parse(time, pos);

return ctime;

} catch (Exception e) {

}

return null;

}

/**

* 将java.util.Date 格式转换为字符串格式'yyyy/MM/dd'

*

* @param time

*            Date 日期

* @return String 字符串

*/

public static String fmtShortEnu(Date time) {

if (null == time) {

return "";

}

try {

SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd");

String strDate = formatter.format(time);

return strDate;

} catch (Exception e) {

}

return "";

}

/**

* 将java.util.Date 格式转换为字符数组格式'{[yyyy][MM][dd]}'

* 返回字符数组数组0位代表年,数组1位代表月和数组2位代表日

*

* @param time

*            Date 日期

* @return String[] 字符数组

*/

public static String[] fmtToStringArray(Date time) {

if (null == time) {

return null;

}

String ymd = fmtToString(time);

return ymd.split("-");

}

/**

* 将java.util.Date 格式转换为字符数组格式'2009-08-04'

* 返回字符数组数组0位代表年,数组1位代表月和数组2位代表日

*

* @param time

*            Date 日期

* @return String字符

*/

public static String fmtToString(Date time) {

if (null == time) {

return "";

}

try {

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");

String ymd = format.format(time);

return ymd;

} catch (Exception e) {

}

return "";

}

/**

* 将java.util.Date 格式转换为字符串格式'yyyy-MM-dd HH:mm:ss'(24小时制)

* 如Sat May 11 17:24:21 CST 2002 to '2002-05-11 17:24:21'

*

* @param time

*            Date 日期

* @return String 字符串

*/

public static String dateToString(Date time) {

if (null == time) {

return "";

}

try {

SimpleDateFormat formatter;

formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

String ctime = formatter.format(time);

return ctime;

} catch (Exception e) {

}

return "";

}

/**

* 将java.util.Date 格式转换为字符串格式'yyyy-MM-dd HH:mm:ss a'(12小时制)

* 如Sat May 11 17:23:22 CST 2002 to '2002-05-11 05:23:22 下午'

*

* @param time

*            Date 日期

* @param x

*            int 任意整数如:1

* @return String 字符串

*/

public static String dateToString(Date time, int x) {

if (null == time) {

return "";

}

try {

SimpleDateFormat formatter;

formatter = new SimpleDateFormat("yyyy-MM-dd KK:mm:ss a");

String ctime = formatter.format(time);

return ctime;

} catch (Exception e) {

}

return "";

}

/**

* 取系统当前时间:返回只值为如下形式 2002-10-30 20:24:39

*

* @return String

*/

public static String Now() {

return dateToString(new Date());

}

/**

* 取系统当前时间:返回只值为如下形式 2002-10-30 08:28:56 下午

*

* @param hour

*            为任意整数

* @return String

*/

public static String Now(int hour) {

return dateToString(new Date(), hour);

}

/**

* 取系统当前时间:返回值为如下形式 2002-10-30

*

* @return String

*/

public static String getYYYY_MM_DD() {

return dateToString(new Date()).substring(0, 10);

}

/**

* 取系统给定时间:返回值为如下形式 2002-10-30

*

* @return String

*/

public static String getYYYY_MM_DD(String date) {

return date.substring(0, 10);

}

/**

* 取得当前小时值.

*

* @return String

*/

public static String getHour() {

try {

SimpleDateFormat formatter = new SimpleDateFormat("H");

String ctime = formatter.format(new Date());

return ctime;

} catch (Exception e) {

}

return "";

}

/**

* 取得当前天数.

*

* @return String

*/

public static String getDay() {

try {

SimpleDateFormat formatter;

formatter = new SimpleDateFormat("d");

String ctime = formatter.format(new Date());

return ctime;

} catch (Exception e) {

}

return "";

}

/**

* 取得当前月数.

*

* @return String

*/

public static String getMonth() {

try {

SimpleDateFormat formatter;

formatter = new SimpleDateFormat("M");

String ctime = formatter.format(new Date());

return ctime;

} catch (Exception e) {

}

return "";

}

/**

* 取得当前年数.

*

* @return String

*/

public static String getYear() {

try {

SimpleDateFormat formatter;

formatter = new SimpleDateFormat("yyyy");

String ctime = formatter.format(new Date());

return ctime;

} catch (Exception e) {

}

return "";

}

/**

* 取得当前周数.

*

* @return String

*/

public static String getWeek() {

try {

SimpleDateFormat formatter;

formatter = new SimpleDateFormat("E");

String ctime = formatter.format(new Date());

return ctime;

} catch (Exception e) {

}

return "";

}

/**

* 得到本月的第一天

*

* @return

*/

public static Date getMonthFirstDay() {

Calendar calendar = Calendar.getInstance();

calendar.set(Calendar.DAY_OF_MONTH, calendar

.getActualMinimum(Calendar.DAY_OF_MONTH));

calendar.set(Calendar.HOUR_OF_DAY, 0);

calendar.set(Calendar.MINUTE, 0);

calendar.set(Calendar.SECOND, 0);

return calendar.getTime();

}

/**

* 得到本月的最后一天

*

* @return

*/

public static Date getMonthLastDay() {

Calendar calendar = Calendar.getInstance();

calendar.set(Calendar.DAY_OF_MONTH, calendar

.getActualMaximum(Calendar.DAY_OF_MONTH));

calendar.set(Calendar.HOUR_OF_DAY, 23);

calendar.set(Calendar.MINUTE, 59);

calendar.set(Calendar.SECOND, 59);

return calendar.getTime();

}

/**

* 得到上月的第一天

*

* @return

*/

public static Date getLastMonthFirstDay() {

Calendar calendar = Calendar.getInstance();

calendar.set(Calendar.DAY_OF_MONTH, calendar

.getActualMinimum(Calendar.DAY_OF_MONTH));

calendar.add(Calendar.MONTH, -1);

calendar.set(Calendar.HOUR_OF_DAY, 0);

calendar.set(Calendar.MINUTE, 0);

calendar.set(Calendar.SECOND, 0);

return calendar.getTime();

}

/**

* 得到上月的最后一天

*

* @return

*/

public static Date getLastMonthLastDay() {

Calendar calendar = Calendar.getInstance();

calendar.set(Calendar.DAY_OF_MONTH, calendar

.getActualMaximum(Calendar.DAY_OF_MONTH));

calendar.add(Calendar.MONTH, -1);

calendar.set(Calendar.HOUR_OF_DAY, 23);

calendar.set(Calendar.MINUTE, 59);

calendar.set(Calendar.SECOND, 59);

return calendar.getTime();

}

/**

* 得到上周的这个时间

*

* @return

*/

public static Date getLastWeekThisTime() {

Calendar calendar = Calendar.getInstance();

calendar.add(Calendar.WEEK_OF_YEAR, -1);

calendar.set(Calendar.HOUR_OF_DAY, 0);

calendar.set(Calendar.MINUTE, 0);

calendar.set(Calendar.SECOND, 0);

return calendar.getTime();

}

/**

* 得到昨天

*

* @return

*/

public static Date getYesterday() {

Calendar calendar = Calendar.getInstance();

calendar.add(Calendar.DAY_OF_YEAR, -1);

calendar.set(Calendar.HOUR_OF_DAY, 0);

calendar.set(Calendar.MINUTE, 0);

calendar.set(Calendar.SECOND, 0);

return calendar.getTime();

}

/**

* 得到今天

*

* @return

*/

public static Date getToday() {

Calendar calendar = Calendar.getInstance();

calendar.set(Calendar.HOUR_OF_DAY, 0);

calendar.set(Calendar.MINUTE, 0);

calendar.set(Calendar.SECOND, 0);

return calendar.getTime();

}

/**

* 得到明天

*

* @return

*/

public static Date getTomorrow() {

Calendar calendar = Calendar.getInstance();

calendar.add(Calendar.DAY_OF_YEAR, 1);

calendar.set(Calendar.HOUR_OF_DAY, 0);

calendar.set(Calendar.MINUTE, 0);

calendar.set(Calendar.SECOND, 0);

return calendar.getTime();

}

/**

*

* 日期:2011-12-12

* 版本:v1.0

* 描述:getDaysBetween(得到两个DATE 之间的日期list) 

*

* @param date_start

* @param date_end

* @return List

* @Exception 异常对象 

*/

public static List getDaysBetween(Date date_start, Date date_end) {

List list = new ArrayList();

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

Date d1 = null;

Date d2 = null;

try {

d1 = sdf.parse(DateHelper.fmtToString(date_start));

d2 = sdf.parse(DateHelper.fmtToString(date_end));

} catch (ParseException e) {

}

Calendar cal_start = Calendar.getInstance();

Calendar cal_end = Calendar.getInstance();

cal_start.setTime(d1);

cal_end.setTime(d2);

while (cal_start.getTimeInMillis() <= cal_end.getTimeInMillis()) {

list.add(cal_start.getTime());

cal_start.add(Calendar.DAY_OF_YEAR, +1);

}

;

return list;

}

// 把一个字符串转换成日期类型

/**

* 日期:2012-12-20

* 版本:v1.0

* 描述:string2Date(yyyy-mm-dd) 

* 主要方法:

将yyyy-mm-dd 类型的日期字符串,转换为年-月-日形式日期

* @param str

* @return

* Date

* @Exception 异常对象 

*/

public static Date string2Date(String str) {

if (null==str||str.length()<1) {

return null;

}

String pattern = "yyyy-MM-dd"; // 系统默认转换该类型

if (0 

pattern = "yyyy/MM/dd";

}

SimpleDateFormat sdf = new SimpleDateFormat(pattern);

Date date = null;

try {

date = sdf.parse(str);

} catch (ParseException e) {

e.printStackTrace();

}

return date;

}

// 将Date 类型转为String

/**

* 日期:2012-12-20

* 版本:v1.0

* 描述:date2String(将年-月-日 转换为String 串) 

* 主要方法:

* @param date

* @return

* String

* @Exception 异常对象 

*/

public static String date2String(Date date) {

if (null == date) {

return "";

}

SimpleDateFormat sdf = null;

String str = "";

try {

sdf = new SimpleDateFormat("yyyy-MM-dd");

str = sdf.format(date);

} catch (Exception e) {

sdf = new SimpleDateFormat("yyyy/MM/dd");

str = sdf.format(date);

}

return str;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值