java开发时往往需要做字符串和日期的转换
主要用到:java.text.SimpleDateFormat
SimpleDateFormat sdf = new SimpleDateFormat( " yyyy-MM-dd HH:mm:ss " );
它确立了转换的格式,为什么有的格式大写,有的格式小写,那是怕避免混淆,例如MM是月份,mm是分;HH是24小
时制,而hh是12小时制
1.字符串转日期
2008-07-10 19:20:00 要把它转成日期,可以用 Date date = sdf.parse( " 2008-07-10 19:20:00 " );
2.日期转字符串
假如把今天的日期转成字符串可用 String str = sdf.format(new Date());
这个字符串内容的格式类似2008-07-10 19:20:00。
附编写好的一个简单实例:
import java.util.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
public class ConvertDemo {
/** *//**
* 日期转换成字符串
* @param date
* @return str
*/
public static String DateToStr(Date date) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str = format.format(date);
return str;
}
/** *//**
* 字符串转换成日期
* @param str
* @return date
*/
public static Date StrToDate(String str) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = null;
try {
date = format.parse(str);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}
public static void main(String[] args) {
Date date = new Date();
System.out.println("日期转字符串:" + ConvertDemo.DateToStr(date));
System.out.println("字符串转日期:" + ConvertDemo.StrToDate(ConvertDemo.DateToStr(date)));
}
}
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/** *//**
* JAVA中字符串转与日期型的互转实例
*/
public class ExValue{
/** *//**
* 取当前系统日期,并按指定格式或者是默认格式返回
* @param format
* @return
*/
public static String getNow(String format){
if(null == format || "".equals(format))
{
format = "yyyy-MM-dd HH:mm:ss";
}
SimpleDateFormat sdf = new SimpleDateFormat(format);
String date = sdf.format(new Date());
return date;
}
/** *//**
* 将字符型转换为指定格式日期型
* @param _date 需要转换成日期的字符串
* @param format 与需要转换成日期的字符串相匹配的格式
* @return
*/
private static Date stringToDate(String _date,String format){
if(null == format || "".equals(format))
{
format = "yyyy-MM-dd HH:mm:ss";
}
SimpleDateFormat sdf = new SimpleDateFormat(format);
Date date=null;
try {
date=sdf.parse(_date);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return date;
}
/** *//**
* 将日期型转换为指定格式的字符串
* @param date 日期
* @param format 格式
* @return
*/
public static String dateToString(Date date,String format){
if(null == format || "".equals(format))
{
format = "yyyy年MM月dd日 hh点:mm分:ss秒";
}
SimpleDateFormat sdf = new SimpleDateFormat(format);
return sdf.format(date);
}
public static void main(String[] args) throws Exception {
//当字符串转日期型的时候,format的格式,一定要和需要转成日期的字符串相匹配
//String dateString="2009-01-01",format="yyyy-MM-dd";
String dateString="2009-01-01 01:01:02",format="yyyy-MM-dd hh:mm:ss";
String result=stringToDate(dateString, format).toString();
System.out.println("字符转日期:"+result.toString());
System.out.println("日期转字符串:"+dateToString(stringToDate(dateString, format),"yyyy年MM月dd日 hh点:mm分:ss秒"));
}
}
System.currentTimeMillis();
//以毫秒为单位返回当前时间
java.util.Calendar
Calendar g=Calendar.getInstance();
g.add(Calendar.YEAR,1);
SimpleDateFormat s=new SimpleDateFormat("yyyy-MM-dd HH-mm-ss",Locale.US);
String d=s.format(g.getTime());
System.out.println(d);
Calendar calendar = new GregorianCalendar();
calendar.setTime(date);
calendar.add(calendar.DATE,1);//把日期往后增加一天.整数往后推,负数往前移动
date=calendar.getTime();
Calendar c = Calendar.getInstance(); //得到当前日期和时间
c.set(Calendar.HOUR, 0); //把当前时间小时变成0
c.set(Calendar.MINUTE, 0); //把当前时间分钟变成0
c.set(Calendar.SECOND, 0); //把当前时间秒数变成0
c.set(Calendar.MILLISECOND, 0); //把当前时间毫秒变成0
Date date1 = c.getTime(); //创建当天的0时0分0秒一个date对象
c.setFirstDayOfWeek(Calendar.SUNDAY); //设定星期的第一天是星期天
c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY); //把日期变成本周的星期天
Date date2 = c.getTime(); //得到这个星期的星期天0时0分0秒
c.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY); //把日期变成本周的星期六
Date date3 = c.getTime(); //得到这个星期的星期六0时0分0秒
System.out.println(date1);
System.out.println(date2);
System.out.println(date3);
当天0点0分0秒
Calendar calendar=Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY,0);
calendar.set(Calendar.MINUTE,0);
calendar.set(Calendar.SECOND,0);
calendar.set(Calendar.MILLISECOND,0);
Date today = calendar.getTime();
这个星期的星期天0时0分0秒和星期六0时0分0秒
接着上面的
c.add(Calendar.DATE, 1-c.get(Calendar.DAY_OF_WEEK));
//此时c是本周日的日期(也就是上周日,本周第一天)
c.add(Calendar.DATE,7-c.get(Calendar.DAY_OF_WEEK));
//此时c是本周六的日期
注意这个c.get(Calendar.DAY_OF_WEEK)一定要实时取,否则先取出来放到int变量中,第一个移到周日成功了,再移就不对了,因为这时c已经是周日那天了。
posted on 2009-12-03 17:09
junly 阅读(5350)
评论(0) 编辑 收藏 所属分类:
java