资讯专栏INFORMATION COLUMN

【Java】时间处理

xialong / 430人阅读

摘要:因为,会按当地时区进行解析,这时月份应为中文的七月才能解析。时间运算提供方法进行运算,第一个参数指明字段,第二个参数为。

当前时间
Calendar cal = Calendar.getInstance();  //实例化
Date today = new Date(); //Date类的当前时间

打印cal(类形式)

  

java.util.GregorianCalendar[time=1406185232225,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2014,MONTH=6,WEEK_OF_YEAR=30,WEEK_OF_MONTH=4,DAY_OF_MONTH=24,DAY_OF_YEAR=205,DAY_OF_WEEK=5,DAY_OF_WEEK_IN_MONTH=4,AM_PM=1,HOUR=3,HOUR_OF_DAY=15,MINUTE=0,SECOND=32,MILLISECOND=225,ZONE_OFFSET=28800000,DST_OFFSET=0]

获取相应字段
Date date = cal.getTime()  //当前时间,Date对象
int year = cal.get(Calendar.YEAR); //获取年份
int month = cal.get(Calendar.MONTH) + 1; //获取月份,注意要从0开始
int day = cal.get(Calendar.DATE);  //获取天数

int hour = cal.get(Calendar.HOUR);
int minute = cal.get(Calendar.MINUTE);
int second = cal.get(Calendar.SECOND);
时间转成String SimpleDateFormat
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
String todaytime = formatter.format(today);
DateFormatUtils

需要用到commons-lang-2.4.jar的包

DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss")
String转成时间

不要忘了加Locale.CANADA,要不然月份Jul解析不了,会出现unparseable。因为,simpleDateFormat会按当地时区进行解析,这时月份应为中文的七月才能解析。

String time = "05/Jul/2014:00:01:01";
Calendar cal = Calendar.getInstance();
SimpleDateFormat formatter = new SimpleDateFormat("dd/MMM/yyyy:HH:mm:ss", Locale.CANADA);
cal.setTime(formatter.parse(time));
时间运算

Calendar提供add()方法进行运算,第一个参数指明字段,第二个参数为amount。要做减法,将amount置为负数即可。

cal.add(Calendar.HOUR, -1);

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/64132.html

相关文章

  • Java8新特性之日期处理

    摘要:处理日期日历和时间的不足之处将设定为可变类型,以及的非线程安全使其应用非常受限。最完整的日期时间,包含时区和相对或格林威治的时差。获取当前的日期中的用于表示当天日期。 简介 伴随 lambda表达式、streams 以及一系列小优化,Java 8 推出了全新的日期时间API。 Java处理日期、日历和时间的不足之处:将 java.util.Date 设定为可变类型,以及 SimpleD...

    Airy 评论0 收藏0
  • 乐字节-Java8新特性之Date API

    摘要:上一篇文章,小乐给大家带来了新特性之,接下来本文将会给大家介绍新特性之前言通过发布新的来进一步加强对日期与时间的处理。 上一篇文章,小乐给大家带来了Java8新特性之Optional,接下来本文将会给大家介绍Java8新特性之Date API 前言: Java 8通过发布新的Date-Time API来进一步加强对日期与时间的处理。 旧版的 Java 中,日期时间 API 存在诸多问题...

    suemi 评论0 收藏0
  • Java新手的一些建议——Java知识点归纳(Java基础部分)

    摘要:中很多特性或者说知识点都是和面向对象编程概念相关的。在多线程中内容有很多,只是简单说明一下中初步使用多线程需要掌握的知识点,以后有机会单独再详细介绍一些高级特性的使用场景。   写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能分享给刚刚入门的Java程序员和打算入Java开发这个行当的准新手们,希望可以给大家一些经...

    lykops 评论0 收藏0
  • java内存模型和线程

    摘要:内存之间的交互关于主内存和工作内存之间的具体交互协议,内存模型定义了中操作来完成,虚拟机实现的时候必须保证每个操作都是原子的,不可分割的对于和有例外锁定作用于主内存变量,代表一个变量是一条线程独占。 并发不一定依赖多线程,但是在java里面谈论并发,大多与线程脱不开关系。 线程是大多是面试都会问到的问题。我们都知道,线程是比进程更轻量级的调度单位,线程之间可以共享内存。之前面试的时候,...

    shiyang6017 评论0 收藏0
  • 20 个案例教你在 Java 8 中如何处理日期和时间?

    摘要:前言前面一篇文章写了如何安全的使用里面介绍了如何处理日期时间,以及如何保证线程安全,及其介绍了在中的处理时间日期默认就线程安全的类。引入了全新的日期时间格式工具,线程安全而且使用方便。 前言 前面一篇文章写了《SimpleDateFormat 如何安全的使用?》, 里面介绍了 SimpleDateFormat 如何处理日期/时间,以及如何保证线程安全,及其介绍了在 Java 8 中的处...

    Rango 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<