java时间

//根据输入的日期(MM/dd/yyyy)返回最近7天的日期
public static List<String> getNextSevenDate(String dateStr,String dateFormat)
{
List<String> dateList=new ArrayList<String>();
Date date=new Date(dateStr);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
SimpleDateFormat sdf=new SimpleDateFormat(dateFormat);
dateList.add(dateStr);
for(int i=0;i<6;i++)
{
calendar.add(Calendar.DATE,1);
dateList.add(sdf.format(calendar.getTime()));
}
return dateList;
}


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

这一行最重要,它确立了转换的格式,yyyy是完整的公元年,MM是月份,dd是日期,至于HH:mm:ss就不需要我再解释了吧!

ps:为什么有的格式大写,有的格式小写,那是怕避免混淆,例如MM是月份,mm是分;HH是24小时制,而hh是12小时制

1.字符串转日期:
 
2002-10-8 15:30:22要把它转成日期,可以用

Date date = sdf.parse( " 2002-10-8 15:30:22 " );

2.日期转字符串

假如把今天的日期转成字符串可用


String datestr = sdf.format( new Date());

 这个字符串的内容便类似2002-10-08 14:55:38

透过这个API我们便可以随心所欲的将日期转成我们想要的字符串格式,例如希望将日期输出成2002年10月08日,

我们可以这么写:

SimpleDateFormat sdf = new SimpleDateFormat( " yyyy年MM月dd日 " );
String datestr = sdf.format( new Date());


//随机数
//生成 [0-n) 个不重复的随机数
//list 用来保存这些随机数
ArrayList list = new ArrayList();
int n = 10;
Random rand = new Random();
boolean[] bool = new boolean[n];
int num =0;
for (int i = 0; i<n; i++){
do{
//如果产生的数相同继续循环
num = rand.nextInt(n);
}while(bool[num]);
bool[num] =true;
list.add(num);
}
System.out.println (list);
}

获取当前时间:
1.
String[] weekDayArray={"日","一","二","三","四","五","六"};
Calendar calendar=Calendar.getInstance();
System.out.println(calendar.getTime());
int year=calendar.get(Calendar.YEAR);
int month=calendar.get(Calendar.MONTH);
int day=calendar.get(Calendar.DATE);
int weekDay=calendar.get((Calendar.DAY_OF_WEEK));
int am_pm=calendar.get(Calendar.AM_PM);
int hour=calendar.get(Calendar.HOUR_OF_DAY);
int minute=calendar.get(Calendar.MINUTE);
int second=calendar.get(Calendar.SECOND);
String dateStr=year+"年"+(month+1)+"月"+day+"日"+" 星期"+weekDayArray[weekDay-1];
if (am_pm==Calendar.AM){dateStr+=" 上午";
} else{ dateStr+=" 下午";
}
dateStr+=hour+"时"+minute+"分"+second+"秒";
System.out.println("dd"+dateStr);
2.
Date d=new Date();
SimpleDateFormat sdf = new SimpleDateFormat ( "yyyyMMddHHmmss");
System.out.println(sdf.format(d));

public static final String FormatDayToChinaTime24H = "yyyy年MM月dd日";

/**
* 将yyyy-mm-dd转为yyyy-m-d
*
* @param day
* 距离现在之后的天数
* @return Date:距离现在之后的若干天的日期;
*/
public static String getYMDDays(String day){
String dayTime=day;
if(String.valueOf(day.charAt(8)).equals("0"))dayTime=day.substring(0,8)+day.substring(9);
if(String.valueOf(day.charAt(5)).equals("0"))dayTime=dayTime.substring(0,5)+dayTime.substring(6);
return dayTime;
}


/**
* 两个日期间的天数
*
* @param days
* 距离现在之后的天数
* @return Date:距离现在之后的若干天的日期;
*/
public static int getIntervalDays(Date startday,Date endday){
if(startday.after(endday)){
Date cal=startday;
startday=endday;
endday=cal;
}
long sl=startday.getTime();
long el=endday.getTime();
long ei=el-sl;
return (int)(ei/(1000*60*60*24));
}



/**
* 取得距离现在多少天(距离现在之后的若干天)
*
* @param days
* 距离现在之后的天数
* @return Date:距离现在之后的若干天的日期;
*/
public static Date getDate(int days) {
Date dateresult = new Date();
try {
DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.FULL);
// Create our Gregorian Calendar.
GregorianCalendar cal = new GregorianCalendar();

// Set the date and time of our calendar
// to the system&s date and time
cal.setTime(new Date());
cal.add(GregorianCalendar.DAY_OF_MONTH, days);
dateresult = cal.getTime();
} catch (Exception e) {
System.out.println("exception" + e.toString());
}
return dateresult;
}

/**
* @根据当前日期计算n天后的日期
* @return String
*/
public static Date afterNDay(Date date, int n) {
Calendar c = Calendar.getInstance();
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
c.setTime(date);
c.add(Calendar.DATE, n);
Date d2 = c.getTime();
// String s=df.format(d2);
return d2;
}

/**
* @根据当前日期计算n天后的日期
* @return String
*/
public static String afterDay(Date date, int n) {
Calendar c = Calendar.getInstance();
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
// String s=df.format(d2);
return df.toString();
}

/**
* @获取当前时间是星期几,“星期日”
* @return String
*/
public static String getDayInWeek() {
Date today = new Date(System.currentTimeMillis());
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("E");
return simpleDateFormat.format(today);
}
/**
*
* @跟具字符串时间来获得星期几,(SimpleDateFormat("yyyy-MM-dd"))
* @return
*/
public static String getDayInWeek(String mydatestring) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date date = null;
String showDate ="";
try {
date = dateFormat.parse(mydatestring);
} catch (ParseException e) {

}
Calendar cd = Calendar.getInstance();
cd.setTime(date);
int mydate = cd.get(Calendar.DAY_OF_WEEK);

switch (mydate) {
case 1:
showDate = "星期日";
break;
case 2:
showDate = "星期一";
break;
case 3:
showDate = "星期二";
break;
case 4:
showDate = "星期三";
break;
case 5:
showDate = "星期四";
break;
case 6:
showDate = "星期五";
break;
default:
showDate = "星期六";
break;
}

return showDate;

}
/**
* @根据日期时间,获取当前时间是星期几,“星期日”
* @return String
*/
public static String getDayInWeek(Date date) {
if (date == null)
return "";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("E");
return simpleDateFormat.format(date);
}

/**
* @获取当前时间在这个月的天
* @return String
*/
public static String getDayInMonth() {
Date today = new Date(System.currentTimeMillis());
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("d");
return simpleDateFormat.format(today);
}

/**
* @根据日期,获取当前时间在这个月的天
* @return String
*/
public static String getDayInMonth(Date date) {
if (date == null)
return "";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("d");
return simpleDateFormat.format(date);
}

/**
* @根据在本年当中,获取月份格式"M"
* @return String
*/
public static String getMonthInYear() {
Date today = new Date(System.currentTimeMillis());
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("M");
return simpleDateFormat.format(today);
}

/**
* @根据在本年当中,获取月份格式"MM"
* @return String
*/
public static String getMonthInYear2() {
java.util.Date today = new Date(System.currentTimeMillis());
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MM");
return simpleDateFormat.format(today);
}

/**
* @根据日期,获取月份格式"MM"
* @return String
*/
public static String getMonthInYear2(String formatDate) {
java.util.Date day = getDate(formatDate, "yyyy-MM-dd");
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MM");
return simpleDateFormat.format(day);
}

/**
* @获取当前时间的年,格式"yyyy"
* @return String
*/
public static String getYear() {
java.util.Date today = new java.util.Date(System.currentTimeMillis());
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy");
return simpleDateFormat.format(today);
}

/**
* @根据时间,获取年,格式"yyyy"
* @return String
*/
public static String getYear(String formatDate) {
java.util.Date day = getDate(formatDate, "yyyy-MM-dd");
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy");
return simpleDateFormat.format(day);
}

/**
* @根据日期以及日期格式,获取日期字符串表达
* @return String
*/
public static String getFormatDate(java.util.Date thisDate, String format) {
if (thisDate == null)
return "";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);
return simpleDateFormat.format(thisDate);
}

/**
* @根据日期以及日期格式,获取日期
* @return String
*/
public static java.util.Date getDate(String date, String format) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);
try {
return simpleDateFormat.parse(date);
} catch (ParseException ex) {
return null;
}
}

/**
* @返回系统当前月的第一天所表示的日期
* @param monthDate
* Date
* @return Date
*/
public static java.util.Date getFirstDateMonth() {
try {
String date_s = getYear() + "-" + getMonthInYear2() + "-01";
return getDate(date_s, "yyyy-MM-dd");
} catch (Exception er) {
er.printStackTrace();
}
return null;
}

/**
* @返回系统当前月的第一天所表示的日期
* @param monthDate
* Date
* @return Date
*/
public static java.util.Date getFirstDateMonth(String formatDate) {
try {
String date_s = getYear(formatDate) + "-"
+ getMonthInYear2(formatDate) + "-01";
return getDate(date_s, "yyyy-MM-dd");
} catch (Exception er) {
er.printStackTrace();
}
return null;
}

/**
* @返回系统当前月的第一天所表示的日期
* @param monthDate
* Date
* @return Date
*/
public static String getFirstDateMonthToString() {
try {
return getYear() + "-" + getMonthInYear2() + "-01";
} catch (Exception er) {
er.printStackTrace();
}
return null;
}

/**
* @返回系统当前月的第一天所表示的日期
* @param monthDate
* Date
* @return Date
*/
public static String getFirstDateMonthToString(String formatDate) {
try {
return getYear(formatDate) + "-" + getMonthInYear2(formatDate)
+ "-01";
} catch (Exception er) {
er.printStackTrace();
}
return null;
}

/**
* @返回系统当前月的最后一天所表示的日期
* @return Date
*/
public static java.util.Date getLastDateMonth() {
try {
int lastday = getDaySumInTheMonth();
String date_s;
if (lastday < 10)
date_s = getYear() + "-" + getMonthInYear2() + "-0" + lastday;
else
date_s = getYear() + "-" + getMonthInYear2() + "-" + lastday;
return getDate(date_s, "yyyy-MM-d");
} catch (Exception er) {
er.printStackTrace();
}
return null;
}

/**
* @返回系统当前月的最后一天所表示的日期
* @return Date
*/
public static String getLastDateMonthToString(String formatDate) {
try {
int lastday = getDaySumInTheMonth(formatDate);
if (lastday < 10)
return getYear(formatDate) + "-" + getMonthInYear2(formatDate)
+ "-0" + lastday;
else
return getYear(formatDate) + "-" + getMonthInYear2(formatDate)
+ "-" + lastday;
} catch (Exception er) {
er.printStackTrace();
}
return null;
}

/**
* @根据时间,返回最后一天所表示的日期
* @param formatDate
* String
* @return Date
*/
public static java.util.Date getLastDateMonth(String formatDate) {
try {
int lastday = getDaySumInTheMonth(formatDate);
String month = getMonthInYear2(formatDate);
String year = getYear(formatDate);
String date_s;
if (lastday < 10)
date_s = year + "-" + month + "-0" + lastday;
else
date_s = year + "-" + month + "-" + lastday;

System.out.println(date_s);

return getDate(date_s, "yyyy-MM-d");
} catch (Exception er) {
er.printStackTrace();
}
return null;
}

/**
* @获得这个月的天数
* @return int
*/
public static int getDaySumInTheMonth() {
String month = DayFormat.getMonthInYear();
if (month.equalsIgnoreCase("12"))
return 31;
int mon = Integer.parseInt(month);
java.util.Date date = DayFormat.getDate(DayFormat.getYear() + "-"
+ (mon + 1) + "-" + "1", "yyyy-MM-d");
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.DATE, -1);
return Integer.parseInt(new SimpleDateFormat("dd")
.format(cal.getTime()));
}

/**
* @获得所在日期月份的天数
* @return int
*/
public static int getDaySumInTheMonth(java.util.Date date) {
String month = new SimpleDateFormat("MM").format(date);
if (month.equalsIgnoreCase("12"))
return 31;
int mon = Integer.parseInt(month);
java.util.Date date2 = DayFormat.getDate(new SimpleDateFormat("yyyy")
.format(date)
+ "-" + (mon + 1) + "-" + "1", "yyyy-MM-d");
Calendar cal = Calendar.getInstance();
cal.setTime(date2);
cal.add(Calendar.DATE, -1);
return Integer.parseInt(new SimpleDateFormat("dd")
.format(cal.getTime()));
}

/**
* @获得所在日期月份的天数
* @return int
*/
public static int getDaySumInTheMonth(String formatDate) {
String month = DayFormat.getMonthInYear2(formatDate);
if (month.equalsIgnoreCase("12"))
return 31;
int mon = Integer.parseInt(month);
java.util.Date date = DayFormat.getDate(DayFormat.getYear(formatDate)
+ "-" + (mon + 1) + "-" + "1", "yyyy-MM-d");
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.DATE, -1);
return Integer.parseInt(new SimpleDateFormat("dd")
.format(cal.getTime()));
}

/**
* @把日期格式转换成字符串格式,格式为'yyyy-MM-dd'
* @param date
* Date
* @return String
*/
public static String getFormatDate(java.util.Date date) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
return simpleDateFormat.format(date);
}

public final static String FormatDay1 = "yyyy-MM-dd";
public final static String FormatDay2 = "yyyy年MM月dd日";
public final static String FormatDay3 = "yyyy年MM月dd日 HH:mm:ss";
public final static String FormatDay4 = "yyyy-MM-dd HH:mm";

public static final String Format24Datetime1 = "yyyy-MM-dd HH:mm:ss";// 24

public static final String Format12Datetime1 = "yyyy-MM-dd hh:mm:ss";// 12

/**
* 获取当前时间
*
* @return
*/
public static String getToday() {
return getToday(FormatDay1);
}

public static java.sql.Timestamp getCurrentTimestamp() {
return new Timestamp(System.currentTimeMillis());
}

public static java.util.Date getCurrentUtilDate() {
return new java.util.Date(System.currentTimeMillis());
}

public static String getToday(String formatDay) {
java.util.Date today = new java.util.Date();
SimpleDateFormat df = new SimpleDateFormat(formatDay);
return df.format(today).toString();
}

public static String get24DateTime() {
return get24DateTime(Format24Datetime1);
}

public static String get24DateTime(String format24DateTime) {
java.util.Date today = new java.util.Date();
SimpleDateFormat df = new SimpleDateFormat(format24DateTime);
return df.format(today).toString();
}

public static String get12DateTime() {
return get12DateTime(Format12Datetime1);
}

public static String get12DateTime(String format12DateTime) {
java.util.Date today = new java.util.Date();
SimpleDateFormat df = new SimpleDateFormat(format12DateTime);
return df.format(today).toString();
}

public static String get24DateTime(Timestamp timestamp) {
SimpleDateFormat df = new SimpleDateFormat(Format24Datetime1);
return df.format(timestamp).toString();
}

public static String get12DateTime(Timestamp timestamp) {
SimpleDateFormat df = new SimpleDateFormat(Format12Datetime1);
return df.format(timestamp).toString();
}

// STRING到日期
public static java.sql.Date stringToDate(String dateStr) {
return java.sql.Date.valueOf(dateStr);
}

public static java.sql.Timestamp stringToTimestamp(String timestampStr) {
if (timestampStr == null || timestampStr.length() < 1)
return null;
return java.sql.Timestamp.valueOf(timestampStr);
}

public static java.sql.Timestamp stringToTimestamp2(String dateStr) {
if (dateStr == null || dateStr.length() < 1)
return null;
return java.sql.Timestamp.valueOf(dateStr + " 00:00:00.000000000");
}

public static java.sql.Timestamp stringToTimestamp3(String dateStr) {
if (dateStr == null || dateStr.length() < 1)
return null;
return java.sql.Timestamp.valueOf(dateStr + ":00.000000000");
}

public static java.sql.Time stringToTime(String timeStr) {
return java.sql.Time.valueOf(timeStr);
}

// 日期到STRING
public static String dateToString(java.sql.Date datee) {
return datee.toString();
}

public static String timestampToString(java.sql.Timestamp timestampe) {
return timestampe.toString();
}

public static String timestampToStringForFormat(Timestamp timestamp,
String format) {
if (timestamp == null)
return "";
SimpleDateFormat df = new SimpleDateFormat(format);
return df.format(timestamp).toString();
}

public static String getTimestampToDateTime15Len(
java.sql.Timestamp timestampe) {
if (timestampe == null || timestampe.toString().length() < 1)
return "";
return timestampe.toString().substring(0, 16);
}

public static String timeToString(java.sql.Time timee) {
return timee.toString();
}

public static java.sql.Timestamp StringToTimestamp(String dateString)
throws ParseException {
java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat(
FormatDay1);
formatter.setLenient(false);
return new java.sql.Timestamp((formatter.parse(dateString).getTime()));
}

public static java.sql.Timestamp StringToTimestampAll(String dateString)
throws ParseException {
return java.sql.Timestamp.valueOf(dateString);
}
//获得周日的日期
public static String getSunday(Date date){
Calendar c = Calendar.getInstance();
c.setTime(date);
c.set(Calendar.DAY_OF_WEEK,Calendar.SUNDAY);
return new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());
}
//获得周一的日期
public static String getMonday(Date date){
Calendar c = Calendar.getInstance();
c.setTime(date);
c.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);
return new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());
}
//获得周二的日期
public static String getTuesday(Date date){
Calendar c = Calendar.getInstance();
c.setTime(date);
c.set(Calendar.DAY_OF_WEEK,Calendar.TUESDAY);
return new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());
}
//获得周三的日期
public static String getWednesday(Date date){
Calendar c = Calendar.getInstance();
c.setTime(date);
c.set(Calendar.DAY_OF_WEEK,Calendar.WEDNESDAY);
return new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());
}
//获得周四的日期
public static String getThursday(Date date){
Calendar c = Calendar.getInstance();
c.setTime(date);
c.set(Calendar.DAY_OF_WEEK,Calendar.THURSDAY);
return new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());
}
//获得周五的日期
public static String getFriday(Date date){
Calendar c = Calendar.getInstance();
c.setTime(date);
c.set(Calendar.DAY_OF_WEEK,Calendar.FRIDAY);
return new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());
}
//获得周六的日期
public static String getSaturday(Date date){
Calendar c = Calendar.getInstance();
c.setTime(date);
c.set(Calendar.DAY_OF_WEEK,Calendar.SATURDAY);
return new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());
}

public static void main(String args[]) {
try {
String d = "2007-05-15 19:23:48.703";
System.out.println(d);
java.sql.Timestamp timestampe = java.sql.Timestamp.valueOf(d);
System.out.println(timestampe.toString());
} catch (Exception er) {
er.printStackTrace();
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值