zoukankan      html  css  js  c++  java
  • Java:String和Date、Timestamp之间的转换

    一、String与Date(java.util.Date)互转

     

         1.1 String -> Date

     

    Java代码
    String dateStr "2010/05/04 12:34:23";   
    1.         Date date new Date();   
    2.         //注意format的格式要与日期String的格式相匹配   
    3.         DateFormat sdf new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");   
    4.         try {   
    5.             date sdf.parse(dateStr);   
    6.             System.out.println(date.toString());   
    7.         catch (Exception e) {   
    8.             e.printStackTrace();   
    9.          
    String dateStr = "2010/05/04 12:34:23";
                    Date date = new Date();
                    //注意format的格式要与日期String的格式相匹配
                    DateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
                    try {
                            date = sdf.parse(dateStr);
                            System.out.println(date.toString());
                    } catch (Exception e) {
                            e.printStackTrace();
                    }
    

     

     

      1.2 Date -> String

     

       日期向字符串转换,可以设置任意的转换格式format

    Java代码
    String dateStr "" 
    1.         Date date new Date();   
    2.         //format的格式可以任意   
    3.         DateFormat sdf new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");   
    4.         DateFormat sdf2 new SimpleDateFormat("yyyy-MM-dd HH/mm/ss");   
    5.         try {   
    6.             dateStr sdf.format(date);   
    7.             System.out.println(dateStr);   
    8.             dateStr sdf2.format(date);   
    9.             System.out.println(dateStr);   
    10.         catch (Exception e) {   
    11.             e.printStackTrace();   
    12.          
    String dateStr = "";
                    Date date = new Date();
                    //format的格式可以任意
                    DateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
                    DateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH/mm/ss");
                    try {
                            dateStr = sdf.format(date);
                            System.out.println(dateStr);
                            dateStr = sdf2.format(date);
                            System.out.println(dateStr);
                    } catch (Exception e) {
                            e.printStackTrace();
                    }
    

     二、String与Timestamp互转

     

     

       2.1 String ->Timestamp

     

     

       使用Timestamp的valueOf()方法

    Java代码
    1. Timestamp ts new Timestamp(System.currentTimeMillis());   
    2.         String tsStr "2011-05-09 11:49:45";   
    3.         try {   
    4.             ts Timestamp.valueOf(tsStr);   
    5.             System.out.println(ts);   
    6.         catch (Exception e) {   
    7.             e.printStackTrace();   
    8.          
    Timestamp ts = new Timestamp(System.currentTimeMillis());
                    String tsStr = "2011-05-09 11:49:45";
                    try {
                            ts = Timestamp.valueOf(tsStr);
                            System.out.println(ts);
                    } catch (Exception e) {
                            e.printStackTrace();
                    }
    

       注:String的类型必须形如: yyyy-mm-dd hh:mm:ss[.f...] 这样的格式,中括号表示可选,否则报错!!!

        如果String为其他格式,可考虑重新解析下字符串,再重组~~

     

        2.2 Timestamp -> String

     

      使用Timestamp的toString()方法或者借用DateFormat

     

    Java代码
    1. Timestamp ts new Timestamp(System.currentTimeMillis());   
    2.         String tsStr "";   
    3.         DateFormat sdf new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");   
    4.         try {   
    5.             //方法一   
    6.             tsStr sdf.format(ts);   
    7.             System.out.println(tsStr);   
    8.             //方法二   
    9.             tsStr ts.toString();   
    10.             System.out.println(tsStr);   
    11.         catch (Exception e) {   
    12.             e.printStackTrace();   
    13.          
    Timestamp ts = new Timestamp(System.currentTimeMillis());
                    String tsStr = "";
                    DateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
                    try {
                            //方法一
                            tsStr = sdf.format(ts);
                            System.out.println(tsStr);
                            //方法二
                            tsStr = ts.toString();
                            System.out.println(tsStr);
                    } catch (Exception e) {
                            e.printStackTrace();
                    }
    

     很容易能够看出来,方法一的优势在于可以灵活的设置字符串的形式。

    三、Date( java.util.Date )和Timestamp互转

     

      声明:查API可知,Date和Timesta是父子类关系

     

     

      3.1 Timestamp -> Date

     

     

    Java代码
    Timestamp ts new Timestamp(System.currentTimeMillis());   
    1.         Date date new Date();   
    2.         try {   
    3.             date ts;   
    4.             System.out.println(date);   
    5.         catch (Exception e) {   
    6.             e.printStackTrace();   
    7.          
    Timestamp ts = new Timestamp(System.currentTimeMillis());
                    Date date = new Date();
                    try {
                            date = ts;
                            System.out.println(date);
                    } catch (Exception e) {
                            e.printStackTrace();
                    }
    

     很简单,但是此刻date对象指向的实体却是一个Timestamp,即date拥有Date类的方法,但被覆盖的方法的执行实体在Timestamp中。

     

     

       3.2 Date -> Timestamp

     

       父类不能直接向子类转化,可借助中间的String~~~~

       注:使用以下方式更简洁

       Timestamp ts = new Timestamp(date.getTime());

    java日期处理二(Timestamp) .


    Java Calendar 类的时间操作

    ava Calendar 类时间操作,代码很简单。

    演示了获取时间,日期时间的累加和累减。

    1. package MyTest;  
    2.   
    3.   
    4. import java.util.Date;  
    5. import java.text.SimpleDateFormat;  
    6. import java.text.DateFormat;  
    7. import java.util.Calendar;  
    8.   
    9. public class Test  
    10.  
    11.   public Test()  
    12.    
    13.    
    14.   
    15.   public static void main(String[] args)  
    16.    
    17.     // 字符串转换日期格式  
    18.     DateFormat fmtDateTime new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
    19.     // 得到日期格式对象  
    20.     Date date fmtDateTime.parse(strDateMake);  
    21.   
    22.     // 完整显示日期时间  
    23.     String str (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS")).format(new Date());  
    24.     System.out.println(str);  
    25.   
    26.     // 创建 Calendar 对象  
    27.     Calendar calendar Calendar.getInstance();  
    28.     // 初始化 Calendar 对象,但并不必要,除非需要重置时间  
    29.     calendar.setTime(new Date());  
    30.   
    31.     // setTime 类似上面一行  
    32.     // Date date new Date();  
    33.     // calendar.setTime(date);  
    34.   
    35.     // 显示年份  
    36.     int year calendar.get(Calendar.YEAR);  
    37.     System.out.println("YEAR is " String.valueOf(year));  
    38.   
    39.     // 显示月份 (从0开始, 实际显示要加一)  
    40.     int MONTH calendar.get(Calendar.MONTH);  
    41.     System.out.println("MONTH is " (MONTH 1));  
    42.   
    43.     // 今年的第   
    44.     int DAY_OF_YEAR calendar.get(Calendar.DAY_OF_YEAR);  
    45.     System.out.println("DAY_OF_YEAR is " DAY_OF_YEAR);  
    46.   
    47.     // 本月第   
    48.     int DAY_OF_MONTH calendar.get(Calendar.DAY_OF_MONTH);  
    49.     System.out.println("DAY_OF_MONTH " String.valueOf(DAY_OF_MONTH));  
    50.   
    51.     // 3小时以后  
    52.     calendar.add(Calendar.HOUR_OF_DAY, 3);  
    53.     int HOUR_OF_DAY calendar.get(Calendar.HOUR_OF_DAY);  
    54.     System.out.println("HOUR_OF_DAY " HOUR_OF_DAY);  
    55.   
    56.     // 当前分钟数  
    57.     int MINUTE calendar.get(Calendar.MINUTE);  
    58.     System.out.println("MINUTE " MINUTE);  
    59.   
    60.     // 15 分钟以后  
    61.     calendar.add(Calendar.MINUTE, 15);  
    62.     MINUTE calendar.get(Calendar.MINUTE);  
    63.     System.out.println("MINUTE 15 " MINUTE);  
    64.   
    65.     // 30分钟前  
    66.     calendar.add(Calendar.MINUTE, -30);  
    67.     MINUTE calendar.get(Calendar.MINUTE);  
    68.     System.out.println("MINUTE 30 " MINUTE);  
    69.   
    70.     // 格式化显示  
    71.     str (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS")).format(calendar.getTime());  
    72.     System.out.println(str);  
    73.   
    74.     // 重置 Calendar 显示当前时间  
    75.     calendar.setTime(new Date());  
    76.     str (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS")).format(calendar.getTime());  
    77.     System.out.println(str);  
    78.   
    79.     // 创建一个 Calendar 用于比较时间  
    80.     Calendar calendarNew Calendar.getInstance();  
    81.   
    82.     // 设定为 小时以前,后者大,显示 -1  
    83.     calendarNew.add(Calendar.HOUR, -5);  
    84.     System.out.println("时间比较:" calendarNew.compareTo(calendar));  
    85.   
    86.     // 设定7小时以后,前者大,显示 1  
    87.     calendarNew.add(Calendar.HOUR, +7);  
    88.     System.out.println("时间比较:" calendarNew.compareTo(calendar));  
    89.   
    90.     // 退回 小时,时间相同,显示 0  
    91.     calendarNew.add(Calendar.HOUR, -2);  
    92.     System.out.println("时间比较:" calendarNew.compareTo(calendar));  
    93.    
    94. }  

     

  • 相关阅读:
    Oracle Instance
    第03章-VTK系统概述(1)
    二叉查找树BST----java实现
    [Golang] 从零開始写Socket Server(2): 自己定义通讯协议
    linux之SQL语句简明教程---LIKE
    spring mvc 入门示例
    MyBatis与Spring集成
    MyBatis 一对一关联查询
    MyBatis CRUD Java POJO操作
    eclipse xml自动提示
  • 原文地址:https://www.cnblogs.com/luckForever/p/7254437.html
Copyright © 2011-2022 走看看