String s=new String("2005/12/20"); String[] st=s.split("/"); int year=Integer.parseInt(st[0]); int month=Integer.parseInt(st[1]); int day=Integer.parseInt(st[2]); GregorianCalendar d=new GregorianCalendar(year,month,day); Date dd=d.getTime();
SimpleDateFormat sdf = new SimpleDataFormat("yyyy/MM/dd");//java.text.SimpleDateFormat Date d = null; try { d =sdf.parse("2005/12/20"); } 然后用d的getXX()方法就行了。
用SimpleDateFormat最简单也最直接,代码可读性也强。
conquer2004正解 提供几个转化的方法: /** * 取得当前时间 年月日星期 * @return String */ static public String getNowTime(){ // 取得当前系统时间 java.util.Date dTimeNow = new java.util.Date(); int iYear=dTimeNow.getYear()+1900; int iMonth=dTimeNow.getMonth()+1; int iDate=dTimeNow.getDate(); String iTime=iYear+"年"+iMonth+"月"+iDate+"日 "; // 取得当前星期 int iDayOfWeek = dTimeNow.getDay(); switch (iDayOfWeek) { case 1: iTime+= "星期一"; break; case 2: iTime+= "星期二"; break; case 3: iTime+= "星期三"; break; case 4: iTime+= "星期四"; break; case 5: iTime+= "星期五"; break; case 6: iTime+= "星期六"; break; case 7: iTime+= "星期日"; break; default: } return iTime; } static public String getChineseTime(){ // 取得当前系统时间 java.util.Date dTimeNow = new java.util.Date(); int iYear=dTimeNow.getYear()+1900; int iMonth=dTimeNow.getMonth()+1; int iDate=dTimeNow.getDate(); String sTime=iYear+"年"+iMonth+"月"+iDate+"日 "; return sTime; } static public String getStringNowTime(){ java.util.Date dTimeNow = new java.util.Date(); dTimeNow.getTime(); java.sql.Timestamp sStamp = new java.sql.Timestamp(dTimeNow.getTime()); java.sql.Date sDate = new java.sql.Date(sStamp.getTime()); return sDate.toString(); } static public java.util.Date getUtilTime(){ java.util.Date dTimeNow = new java.util.Date(); dTimeNow.getTime(); return dTimeNow; } static public java.sql.Date getSqlDate(){ java.util.Date dTimeNow = new java.util.Date(); dTimeNow.getTime(); java.sql.Timestamp sStamp = new java.sql.Timestamp(dTimeNow.getTime()); java.sql.Date sDate = new java.sql.Date(sStamp.getTime()); System.out.println("util时间"+dTimeNow); System.out.println("sql时间"+sDate); System.out.println("stamp时间"+sStamp); return sDate; } static public String convertDisplay(String sDate){ try{ String sDisplayDate = null; String sYear = sDate.substring(0, 4); String sMonth = sDate.substring(5, 7); if (sMonth.substring(0, 1).equals("0")) { sMonth = sMonth.substring(1); } sDisplayDate = sYear.concat("年"); sDisplayDate = sDisplayDate.concat(sMonth); sDisplayDate = sDisplayDate.concat("月"); return sDisplayDate; }catch(Exception e){ return sDate; } } static public java.util.Date convertStringToUtilDate(String sDate){ try{ System.out.println(sDate); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); Date date = formatter.parse(sDate); System.out.println(date+ "..................................................."); return date; }catch(Exception e){ System.out.println( "convert exception !"); return null; } } static public java.sql.Date convertStringToSqlDate(String strDate){ try{ SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); java.util.Date date = formatter.parse(strDate); java.sql.Date sDate = new java.sql.Date(date.getTime()); return sDate; }catch(Exception e){ System.out.println( "convert exception !"); return null; } } static public String convertSqlDateToString(java.sql.Date Date){ try{ SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); String dateString = formatter.format(Date); return dateString; }catch(Exception e){ return ""; } } static public String convertUtilDateToString(java.util.Date Date){ try{ SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); String dateString = formatter.format(Date); System.out.println(dateString); return dateString; } catch(Exception e){ return ""; } }
一下三句,把一个字符串转成Date:String myString = "2005/12/20"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd", Locale.CHINA); Date d = sdf.parse(myString);
String myString = "2005/12/20"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd", Locale.CHINA); Date d = sdf.parse(myString); Calendar c = Calendar.getInstance(); c.set(Calendar.YEAR, d.getYear()); c.set(Calendar.MONTH, d.getMonth()); c.set(Calendar.DATE, d.getDate());星期几 int indexOfWeek = c.get( Calendar.DAY_OF_WEEK ) ;
String[] st=s.split("/");
int year=Integer.parseInt(st[0]);
int month=Integer.parseInt(st[1]);
int day=Integer.parseInt(st[2]);
GregorianCalendar d=new GregorianCalendar(year,month,day);
Date dd=d.getTime();
GregorianCalendar d=new GregorianCalendar(year,month-1,day);
Date d = null;
try
{
d =sdf.parse("2005/12/20");
}
然后用d的getXX()方法就行了。
提供几个转化的方法:
/**
* 取得当前时间 年月日星期
* @return String
*/
static public String getNowTime(){
// 取得当前系统时间
java.util.Date dTimeNow = new java.util.Date();
int iYear=dTimeNow.getYear()+1900;
int iMonth=dTimeNow.getMonth()+1;
int iDate=dTimeNow.getDate();
String iTime=iYear+"年"+iMonth+"月"+iDate+"日 ";
// 取得当前星期
int iDayOfWeek = dTimeNow.getDay();
switch (iDayOfWeek) {
case 1:
iTime+= "星期一";
break;
case 2:
iTime+= "星期二";
break;
case 3:
iTime+= "星期三";
break;
case 4:
iTime+= "星期四";
break;
case 5:
iTime+= "星期五";
break;
case 6:
iTime+= "星期六";
break;
case 7:
iTime+= "星期日";
break;
default: }
return iTime;
}
static public String getChineseTime(){
// 取得当前系统时间
java.util.Date dTimeNow = new java.util.Date();
int iYear=dTimeNow.getYear()+1900;
int iMonth=dTimeNow.getMonth()+1;
int iDate=dTimeNow.getDate();
String sTime=iYear+"年"+iMonth+"月"+iDate+"日 ";
return sTime;
}
static public String getStringNowTime(){
java.util.Date dTimeNow = new java.util.Date();
dTimeNow.getTime();
java.sql.Timestamp sStamp = new java.sql.Timestamp(dTimeNow.getTime());
java.sql.Date sDate = new java.sql.Date(sStamp.getTime());
return sDate.toString();
}
static public java.util.Date getUtilTime(){
java.util.Date dTimeNow = new java.util.Date();
dTimeNow.getTime();
return dTimeNow;
}
static public java.sql.Date getSqlDate(){
java.util.Date dTimeNow = new java.util.Date();
dTimeNow.getTime(); java.sql.Timestamp sStamp = new java.sql.Timestamp(dTimeNow.getTime());
java.sql.Date sDate = new java.sql.Date(sStamp.getTime());
System.out.println("util时间"+dTimeNow);
System.out.println("sql时间"+sDate);
System.out.println("stamp时间"+sStamp);
return sDate;
}
static public String convertDisplay(String sDate){
try{
String sDisplayDate = null;
String sYear = sDate.substring(0, 4);
String sMonth = sDate.substring(5, 7);
if (sMonth.substring(0, 1).equals("0")) {
sMonth = sMonth.substring(1);
}
sDisplayDate = sYear.concat("年");
sDisplayDate = sDisplayDate.concat(sMonth);
sDisplayDate = sDisplayDate.concat("月");
return sDisplayDate;
}catch(Exception e){
return sDate;
}
}
static public java.util.Date convertStringToUtilDate(String sDate){
try{
System.out.println(sDate);
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
Date date = formatter.parse(sDate);
System.out.println(date+ "...................................................");
return date;
}catch(Exception e){
System.out.println( "convert exception !");
return null;
}
}
static public java.sql.Date convertStringToSqlDate(String strDate){
try{
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
java.util.Date date = formatter.parse(strDate);
java.sql.Date sDate = new java.sql.Date(date.getTime());
return sDate;
}catch(Exception e){
System.out.println( "convert exception !");
return null;
}
} static public String convertSqlDateToString(java.sql.Date Date){
try{
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String dateString = formatter.format(Date);
return dateString;
}catch(Exception e){
return "";
}
}
static public String convertUtilDateToString(java.util.Date Date){
try{
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String dateString = formatter.format(Date);
System.out.println(dateString);
return dateString;
}
catch(Exception e){
return "";
}
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd", Locale.CHINA);
Date d = sdf.parse(myString);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd", Locale.CHINA);
Date d = sdf.parse(myString);
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, d.getYear());
c.set(Calendar.MONTH, d.getMonth());
c.set(Calendar.DATE, d.getDate());星期几 int indexOfWeek = c.get( Calendar.DAY_OF_WEEK ) ;