• JAVA中的时间操作


    java中的时间操作不外乎这四种情况:

    1、获取当前时间

    2、获取某个时间的某种格式

    3、设置时间

    4、时间的运算

    好,下面就针对这四种情况,一个一个搞定。

    一、获取当前时间

    有两种方式可以获得,第一种,使用Date类。

    j2SE的包里有两个Date类,一个是java.sql.Date,一个是java.util.Date

    这里,要使用java.util.Date。获取当前时间的代码如下

    Date date = new Date();

    date.getTime();

    还有一种方式,使用System.currentTimeMillis();

    这两种方式获得的结果是一样的,都是得到一个当前的时间的long型的时间的毫秒值,这个值实际上是当前时间值与1970年一月一号零时零分零秒相差的毫秒数。

    当前的时间得到了,但实际的应用中最后往往不是要用这个long型的东西,用户希望得到的往往是一个时间的字符串,比如“2006年6月18号”,或“2006-06-18”,老外可能希望得到的是“06-18-2006”,诸如此类等等。这就是下一个要解决的问题

    二、获取某个时间的某种格式

    获取时间的格式,需要用到一个专门用于时间格式的类java.text.SimpleDateFormat。

    首先,定义一个SimpleDateFormat变量

    SimpleDateFormat sdf = new SimpleDateFormat("",Locale.SIMPLIFIED_CHINESE);

    这个构造函数的定义如下:

    SimpleDateFormat(String pattern, Locale locale)

    第一个参数pattern,我们后面再解释,这里我们使用一个"",第二个参数,是用来设置时区的,这里用到了java.util.Locale这个类,这个类了面定义了很多静态变量,直接拿过来用就OK,我们把时区设置为Locale.SIMPLIFIED_CHINESE,只看名字,这个静态变量的意义已经很清楚了。

    接下来我们使用这个SimpleDateFormat把当前时间格式化为一个如下格式的时间字符串“XXXX年XX月XX日_XX时XX分XX秒”,代码:

    sdf.applyPattern("yyyy年MM月dd日_HH时mm分ss秒");

    String timeStr = sdf.format(new Date());

    获取时间格式的函数是format,这个函数的参数是java.util.Date对象,这个没有什么花头。

    要说明一下的是这个pattern,所谓的模式。这里,yyyy,MM,dd等,这就是模式。

    我们可以在SimpleDateFormat的构造函数中指定模式,比如

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd",Locale.SIMPLIFIED_CHINESE);

    也可以获取时间格式的时候使用applyPattern函数临时指定,上面的例子就是这样。

    什么字符代表什么,这是j2se约定好的,设置模式的时候,我们可以使用约定好的字符加上任何我们想要的字符串。

    j2se对字符所代表的模式的约定列表如下:

    Letter Date or Time Component Presentation
    G Era designator Text
    y Year Year
    M Month in year Month
    w Week in year Number
    W Week in month Number
    D Day in year Number
    d Day in month Number
    F Day of week in month Number
    E Day in week Text
    a Am/pm marker Text 
    H Hour in day (0-23) Number
    k Hour in day (1-24) Number
    K Hour in am/pm (0-11)  Number
    h   Hour in am/pm (1-12)  Number
    m   Minute in hour  Number
    s   Second in minute  Number
    S   Millisecond  Number  
    z   Time zone   General time zone 
    Z   Time zone  RFC 822 time zone 

    三,设置时间
    Calendar.getInstance().getTime()即可获取一个Date对象

    Calendar.getInstance().add(时间的一个部分,正数代表加,负数代表减)

    现在设置时间,推荐 使用java.util.Calendar类来进行操作,因为java.util.Date类很多方法都过时了,
    Calendar 类有很多重载的设置时间的方法
    我们可以针对于某一项进行设置,也可以同时进行很多设置

    void set(int field, int value) 
              将给定的日历字段设置为给定值。
     void set(int year, int month, int date) 
              设置日历字段 YEARMONTH 和 DAY_OF_MONTH 的值。
     void set(int year, int month, int date, int hourOfDay, int minute) 
              设置日历字段 YEARMONTHDAY_OF_MONTHHOUR_OF_DAY 和 MINUTE 的值。
     void set(int year, int month, int date, int hourOfDay, int minute, int second) 
              设置字段 YEARMONTHDAY_OF_MONTHHOURMINUTE 和 SECOND 的值。

    其中第一个就是给特定的字段设值,后面三个就是针对多个字段赋值

    四,时间运算

    时间的运算,无外乎就是加加减减,然后比较谁早谁晚而已,这些需求JAVA的API已经帮我们实现的很好了。一般比较时间的可以用如下的方法

    abstract  void add(int field, int amount) 
              根据日历的规则,为给定的日历字段添加或减去指定的时间量。
     boolean after(Object when) 
              判断此 Calendar 表示的时间是否在指定 Object 表示的时间之后,返回判断结果。
     boolean before(Object when) 
              判断此 Calendar 表示的时间是否在指定 Object 表示的时间之前,返回判断结果。


    第一个是给某个字段加上某个数量的时间,虽然这个方法名叫add ,我们要减也是调用它的,只不过我们传入的是负数。

    其实JAVA对时间操作的支持还是挺丰富的。希望大家的日常的使用中有更多的发现。

    http://www.blogjava.net/hadeslee/archive/2007/09/11/144386.html

    一. 获取当前系统时间和日期并格式化输出:

    import java.util.Date;
    import java.text.SimpleDateFormat;

    public class NowString {
    public static void main(String[] args) {
    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
    System.out.println(df.format(new Date()));// new Date()为获取当前系统时间
    }
    }

    二. 在数据库里的日期只以年-月-日的方式输出,可以用下面两种方法:

    1、用convert()转化函数:

    String sqlst = "select convert(varchar(10),bookDate,126) as convertBookDate from roomBook where bookDate between '2007-4-10' and '2007-4-25'";

    System.out.println(rs.getString("convertBookDate"));

    2、利用SimpleDateFormat类:

    先要输入两个java包:

    import java.util.Date;
    import java.text.SimpleDateFormat;

    然后:

    定义日期格式:SimpleDateFormat sdf = new SimpleDateFormat(yy-MM-dd);

    sql语句为:String sqlStr = "select bookDate from roomBook where bookDate between '2007-4-10' and '2007-4-25'";

    输出:

    System.out.println(df.format(rs.getDate("bookDate")));

    ************************************************************

    java中获取当前日期和时间的方法

    import java.util.Date;
    import java.util.Calendar;

    import java.text.SimpleDateFormat;

    public class TestDate{
    public static void main(String[] args){
    Date now = new Date();
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");//可以方便地修改日期格式


    String hehe = dateFormat.format( now );
    System.out.println(hehe);

    Calendar c = Calendar.getInstance();//可以对每个时间域单独修改


    int year = c.get(Calendar.YEAR);
    int month = c.get(Calendar.MONTH);
    int date = c.get(Calendar.DATE);
    int hour = c.get(Calendar.HOUR_OF_DAY);
    int minute = c.get(Calendar.MINUTE);
    int second = c.get(Calendar.SECOND);
    System.out.println(year + "/" + month + "/" + date + " " +hour + ":" +minute + ":" + second);
    }
    }

    有时候要把String类型的时间转换为Date类型,通过以下的方式,就可以将你刚得到的时间字符串转换为Date类型了。

    SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");

    java.util.Date time=null;
    try {
    time= sdf.parse(sdf.format(new Date()));

    } catch (ParseException e) {

    e.printStackTrace();
    }

  • 相关阅读:
    postgresql遇到的性能问题
    面试(三)
    Oracle的dmp文件的导入
    plsql的参数IN和OUT
    IT小说
    被关注应该也是一种强大-日经某文有感
    总结:安卓手机页面样式没问题,苹果手机样式错乱。
    前端开发人员要注意的css规范,css命名。
    水平,垂直居中的15种方法
    nuxt 的一些报错和插件推荐
  • 原文地址:https://www.cnblogs.com/softidea/p/5801520.html
Copyright © 2020-2023  润新知