• java中的日期时间


    java.text.SimpleDateFormat 类 ----时间日期格式化

    java.util.Date类 ----构造时间日期

      1 package com;
      2 
      3 import java.text.ParsePosition;
      4 import java.text.SimpleDateFormat;
      5 import java.util.Date;
      6 
      7 public class Test4 {
      8 
      9     /**
     10      * @param args
     11      */
     12     public static void main(String[] args) {
     13         // TODO Auto-generated method stub
     14 
     15         
     16         Date d1 = stringToDate("2011-12-13");
     17         Date dd1=stringToDate("2011-12-12");
     18         System.out.println(dd1);  //Mon Dec 12 00:00:00 CST 2011
     19         System.out.println(d1);   //Tue Dec 13 00:00:00 CST 2011
     20         
     21         if(d1.compareTo(dd1)==1){
     22             System.out.println("d1>dd1");
     23         }else if(d1.compareTo(dd1)==0){
     24             System.out.println("d1==dd1");
     25         }else if(d1.compareTo(dd1)==-1){
     26             System.out.println("d1<dd1");
     27         }                                        //d1>dd1
     28         Date d2=new Date();
     29         System.out.println(dateToString1(d2));//2013-05-28 02:45:38 下午
     30         System.out.println(Now());//2013-05-28 14:45:38
     31         System.out.println(getYYYY_MM_DD());//2013-05-28
     32         System.out.println(getDay());//28
     33         System.out.println(getHour());//14
     34         System.out.println(getMonth());//05
     35         System.out.println(getWeek());//星期二
     36         System.out.println(getYear());//2013
     37         
     38         
     39         String s1="22";
     40         
     41     }
     42 
     43     /**
     44      * 字符串转换为java.util.Date<br>
     45      * 支持格式为 yyyy.MM.dd G 'at' hh:mm:ss z 如 '2002-1-1 AD at 22:10:59 PSD'<br>
     46      * yy/MM/dd HH:mm:ss 如 '2002/1/1 17:55:00'<br>
     47      * yy/MM/dd HH:mm:ss pm 如 '2002/1/1 17:55:00 pm'<br>
     48      * yy-MM-dd HH:mm:ss 如 '2002-1-1 17:55:00' <br>
     49      * yy-MM-dd HH:mm:ss am 如 '2002-1-1 17:55:00 am' <br>
     50      * 
     51      * @param time
     52      *            String 字符串<br>
     53      * @return Date 日期<br>
     54      */
     55     public static Date stringToDate(String time) {
     56         SimpleDateFormat formatter;
     57         int tempPos = time.indexOf("AD");
     58         time = time.trim();
     59         formatter = new SimpleDateFormat("yyyy.MM.dd G 'at' hh:mm:ss z");
     60         if (tempPos > -1) {
     61             time = time.substring(0, tempPos) + "公元"
     62                     + time.substring(tempPos + "AD".length());// china
     63             formatter = new SimpleDateFormat("yyyy.MM.dd G 'at' hh:mm:ss z");
     64         }
     65         tempPos = time.indexOf("-");
     66         if (tempPos > -1 && (time.indexOf(" ") < 0)) {
     67              formatter = new SimpleDateFormat ("yyyy-MM-dd");
     68         } else if ((time.indexOf("/") > -1) && (time.indexOf(" ") > -1)) {
     69             formatter = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
     70         } else if ((time.indexOf("-") > -1) && (time.indexOf(" ") > -1)) {
     71             formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
     72         } else if ((time.indexOf("/") > -1) && (time.indexOf("am") > -1)
     73                 || (time.indexOf("pm") > -1)) {
     74             formatter = new SimpleDateFormat("yyyy-MM-dd KK:mm:ss a");
     75         } else if ((time.indexOf("-") > -1) && (time.indexOf("am") > -1)
     76                 || (time.indexOf("pm") > -1)) {
     77             formatter = new SimpleDateFormat("yyyy-MM-dd KK:mm:ss a");
     78         }
     79         ParsePosition pos = new ParsePosition(0);
     80         java.util.Date ctime = formatter.parse(time, pos);
     81 
     82         return ctime;
     83     }
     84 
     85     /**
     86      * 将java.util.Date 格式转换为字符串格式'yyyy-MM-dd HH:mm:ss'(24小时制)<br>
     87      * 如Sat May 11 17:24:21 CST 2002 to '2002-05-11 17:24:21'<br>
     88      * 
     89      * @param time
     90      *            Date 日期<br>
     91      * @return String 字符串<br>
     92      */
     93 
     94     public static String dateToString(Date time) {
     95         SimpleDateFormat formatter;
     96         formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
     97         String ctime = formatter.format(time);
     98 
     99         return ctime;
    100     }
    101 
    102     /**
    103      * 将java.util.Date 格式转换为字符串格式'yyyy-MM-dd HH:mm:ss a'(12小时制)<br>
    104      * 如Sat May 11 17:23:22 CST 2002 to '2002-05-11 05:23:22 下午'<br>
    105      * 
    106      * @param time
    107      *            Date 日期<br>
    108      * @param x
    109      *            int 任意整数如:1<br>
    110      * @return String 字符串<br>
    111      */
    112     public static String dateToString1(Date time) {
    113         SimpleDateFormat formatter;
    114         formatter = new SimpleDateFormat("yyyy-MM-dd KK:mm:ss a");
    115         String ctime = formatter.format(time);
    116 
    117         return ctime;
    118     }
    119 
    120     /**
    121      * 取系统当前时间:返回只值为如下形式 2002-10-30 20:24:39
    122      * 
    123      * @return String
    124      */
    125     public static String Now() {
    126         return dateToString(new Date());
    127     }
    128 
    129     /**
    130      * 取系统当前时间:返回只值为如下形式 2002-10-30 08:28:56 下午
    131      * 
    132      * @param hour
    133      *            为任意整数
    134      * @return String
    135      */
    136     public static String Now(int hour) {
    137         return dateToString1(new Date());
    138     }
    139 
    140     /**
    141      * 取系统当前时间:返回值为如下形式 2002-10-30
    142      * 
    143      * @return String
    144      */
    145     public static String getYYYY_MM_DD() {
    146         return dateToString(new Date()).substring(0, 10);
    147 
    148     }
    149 
    150     /**
    151      * 取系统给定时间:返回值为如下形式 2002-10-30
    152      * 
    153      * @return String
    154      */
    155     public static String getYYYY_MM_DD(String date) {
    156         return date.substring(0, 10);
    157 
    158     }
    159 
    160     public static String getHour() {
    161         SimpleDateFormat formatter;
    162         formatter = new SimpleDateFormat("H");
    163         String ctime = formatter.format(new Date());
    164         return ctime;
    165     }
    166 
    167     public static String getDay() {
    168         SimpleDateFormat formatter;
    169         formatter = new SimpleDateFormat("d");
    170         String ctime = formatter.format(new Date());
    171         return ctime;
    172     }
    173 
    174     public static String getMonth() {
    175         SimpleDateFormat formatter;
    176         formatter = new SimpleDateFormat("MM");
    177         String ctime = formatter.format(new Date());
    178         return ctime;
    179     }
    180 
    181     public static String getYear() {
    182         SimpleDateFormat formatter;
    183         formatter = new SimpleDateFormat("yyyy");
    184         String ctime = formatter.format(new Date());
    185         return ctime;
    186     }
    187 
    188     public static String getWeek() {
    189         SimpleDateFormat formatter;
    190         formatter = new SimpleDateFormat("E");
    191         String ctime = formatter.format(new Date());
    192         return ctime;
    193     }
    194 }
    View Code

        java中日期时间的比较要用到java.text.SimpleDateFormat 类和java.util.Date类compareTo方法,SimpleDateFormat类用于时间日期格式化,将日期时间格式化为制定的格式,compareTo方法用于比较日期时间。

    用法:
    SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    这一行最重要,它确立了转换的格式,yyyy是完整的西元年,MM是月份,dd是日期, 至於HH:mm:ss就不需要我再解释了吧!
    ps:为什麽有的格式大写,有的格式小写,那是怕避免混淆,例如MM是月份,mm是分;HH是24小时制,而hh是12小时制

    1.字串转日期:
     2002-10-8 15:30:22要把它转成日期,可以用
     Date date=sdf.parse("2002-10-8 15:30:22");
    2.日期转字串
     假如把今天的日期转成字串可用
     String datestr=sdf.format(new Date());
     这个字串的内容便类似2002-10-08 14:55:38

    透过这个API我们便可以随心所欲的将日期转成我们想要的字串格式,例如希望将日期输出成2002年10月08日,
    我们可以这麽写:
    SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日");
    String datestr=sdf.format(new Date());
    datestr便会依照我们设定的格式输出

    //对日期格式的转换成("yyyy-MM-dd")格式的方法
    public java.sql.Date Convert(String str)
    {
        java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd");
        try
        {
          java.util.Date d = sdf.parse(str);
          java.sql.Date d1 = new java.sql.Date(d.getTime());
          return d1;
        }
        catch(Exception ex)
        {
          ex.printStackTrace();
          return null;
        }
    }

  • 相关阅读:
    php socket 模型及效率问题
    深入浅出讲解:php的socket通信
    发现一个nginx LUA开发Web App的框架
    centos6.x 抓取ssh登录的用户名和密码
    使用Lua的扩展库LuaSocket用例
    Lua开发
    ngx.location.capture 只支持相对路径,不能用绝对路径
    PHP获得数组的交集与差集
    php用explode,可以提供多个字符作为分割符来进行分割数组吗?
    resizable可调整尺寸组件
  • 原文地址:https://www.cnblogs.com/gexiaoshan/p/3103661.html
Copyright © 2020-2023  润新知