zoukankan      html  css  js  c++  java
  • java中Date与String的相互转化

    1:大体思路

    这种转换要用到java.text.SimpleDateFormat类
    
    字符串转换成日期类型:
    方法1:
    
    也是最简单的方法 Date date=new Date("2008-04-14");
    
    方法2:
    
    SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");//小写的mm表示的是分钟
    String dstr="2008-4-24";
    java.util.Date date=sdf.parse(dstr);
    
    
    
    日期转换成字符串:
    
    SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
    java.util.Date date=new java.util.Date();
    String str=sdf.format(date);
     

    2:程序实例

    package test;
    import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    import java.text.ParseException;
    import java.util.Date;
    public class StringOrDate {
        public static String dateToString(Date date, String type) {
            String str = null;
            DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
            if (type.equals("SHORT")) {
                // 07-1-18
                format = DateFormat.getDateInstance(DateFormat.SHORT);
                str = format.format(date);
            } else if (type.equals("MEDIUM")) {
                // 2007-1-18
                format = DateFormat.getDateInstance(DateFormat.MEDIUM);
                str = format.format(date);
            } else if (type.equals("FULL")) {
                // 2007年1月18日 星期四
                format = DateFormat.getDateInstance(DateFormat.FULL);
                str = format.format(date);
            }
            return str;
        }
        public static Date stringToDate(String str) {
            DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
            Date date = null;
            try {
                // Fri Feb 24 00:00:00 CST 2012
                date = format.parse(str); 
            } catch (ParseException e) {
                e.printStackTrace();
            }
            // 2012-02-24
            date = java.sql.Date.valueOf(str);
                                                
            return date;
        }
        public static void main(String[] args) {
            Date date = new Date();
            System.out.println(StringOrDate.dateToString(date, "MEDIUM"));
            String str = "2012-2-24";
            System.out.println(StringOrDate.stringToDate(str));
        }

    Date -> String

            String =(new SimpleDateFormat("格式")).format(Date); 

    String -> Date

            Date = (new SimpleDateFormat("格式")).parse(String); 

     

        如果是程序中的符合日期的字符串,想存入数据库中的Date/Datetime类型的字段中,是可以直接存的,系统会自动存成Date/Datetime类型。前提是字符串的格式一定要写对哦。

           SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            SimpleDateFormat format2 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
            
            Date date1 = null;
            Date date2 = null;
            String str1 = "2009-02-14 12:00:00";
            String str2 = "2009年02月14日 12时00分00秒";
    
            // String转Date:String 必须严格按照定义的格式
            try {
                date1 = format1.parse(str1);
                date2 = format2.parse(str2);
            } catch (ParseException ex) {
                Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
            }
    
            System.out.println("date1= "+date1);
            System.out.println("date2= "+date2);
    
    
            //Date转String
            String str3 = null;
            String str4 = null;
    
            str3 = format1.format(date1);
            str4 = format2.format(date2);
    
            System.out.println("str3= "+str3);
            System.out.println("str4= "+str4);

    输出结果:

    date1= Sat Feb 14 12:00:00 CST 2009
    date2= Sat Feb 14 12:00:00 CST 2009
    str3= 2009-02-14 12:00:00
    str4= 2009年02月14日 12时00分00秒

    SimpleDateFormat 语法:  
             G -- 年代标志符
             y -- 年
             M -- 月 

             d -- 日
             h -- 时 12小时制 (1~12)
             H -- 时 24小时制 (0~23)
             m -- 分
             s -- 秒
             S -- 毫秒
             E -- 星期
             D -- 一年中的第几天
             F -- 一月中第几个星期几
             w -- 一年中第几个星期
             W -- 一月中第几个星期


             a 上午 / 下午 标记符
             k 时 在一天中 (1~24)
             K 时 在上午或下午 (0~11)
             z 时区

  • 相关阅读:
    抓包获得东北大学的课程表,考试成绩
    都四次上课练习
    基于WolframAlphaAPI的科学计算器原型设计
    原型设计工具比较及实践
    Xamarin.Forms实现扫码登陆程序移动端(上)
    Hello World!
    程序员的路
    Angularjs 异步模块加载项目模板
    推荐一个 angular 图像加载插件
    前端,我为什么不要你
  • 原文地址:https://www.cnblogs.com/xuewater/p/2620811.html
Copyright © 2011-2022 走看看