字符串和日期的转换
- 格式:doc
- 大小:175.50 KB
- 文档页数:5
java开发时往往需要做字符串和日期的转换主要用到:java.text.SimpleDateFormatSimpleDateFormat 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*/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());}/*** 将字符型转换为指定格式日期型* @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 blocke.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.CalendarCalendar g=Calendar.getInstance();g.add(Calendar.YEAR,1);SimpleDateFormat s=new SimpleDateFormat("yyyy-MM-dd HH-mm-ss",);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); //把当前时间小时变成0c.set(Calendar.MINUTE, 0); //把当前时间分钟变成0c.set(Calendar.SECOND, 0); //把当前时间秒数变成0c.set(LISECOND, 0); //把当前时间毫秒变成0Date 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(LISECOND,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已经是周日那天了。