【Java】时间处理

码途琉璃狩
• 阅读 3023

当前时间

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);
点赞
收藏
评论区
推荐文章
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
3年前
Java日期时间API系列31
  时间戳是指格林威治时间1970年01月01日00时00分00秒起至现在的总毫秒数,是所有时间的基础,其他时间可以通过时间戳转换得到。Java中本来已经有相关获取时间戳的方法,Java8后增加新的类Instant等专用于处理时间戳问题。 1获取时间戳的方法和性能对比1.1获取时间戳方法Java8以前
Wesley13 Wesley13
3年前
java常用类(2)
三、时间处理相关类Date类:计算机世界把1970年1月1号定为基准时间,每个度量单位是毫秒(1秒的千分之一),用long类型的变量表示时间。Date分配Date对象并初始化对象,以表示自从标准基准时间(称为“历元”(epoch),即1970年1月1日08:00:00GMT)以来的指定毫秒数。示例:packagecn.tanjian
Wesley13 Wesley13
3年前
java.util.Date和java.sql.Date的区别和相互转化
java.util.Date是在除了SQL语句的情况下面使用的。java.sql.Date是针对SQL语句使用的,它只包含日期而没有时间部分它们都有getTime方法返回毫秒数,自然就可以直接构建。java.util.Date是java.sql.Date的父类,前者是常用的表示时间的类,我们通常格式化或者得到当前时间都是用
Wesley13 Wesley13
3年前
Java 日期时间
java.util包提供了Date类来封装当前的日期和时间。Date类提供两个构造函数来实例化Date对象。Date() 使用当前日期创建对象Date(longmillisec) 使用时间戳 即 从1970年1月1日开始的毫秒数。Date对象创建以后,可以调用下面的方法。1.booleanafter(Datedate)
Wesley13 Wesley13
3年前
Java 8中处理日期和时间示例
在Java8以前,日期和时间处理一直被广大java程序员抱怨太难用,首先是java.util和java.sql中,都包含Date类,如果要处理java.text.DateFormat类处理。同时java.util.Date中既包含了日期,又包含了时间,所以java8新的日期和时间库,很好的解决了以前日期和时间类的很多弊端。并且也借鉴了第
Wesley13 Wesley13
3年前
Java8为什么提供LocalDate、LocalTime、LocalDateTime 时间类
Java8为什么提供LocalDate、LocalTime、LocalDateTime时间类?Date不格式化打印可读性差。TueSep1009:34:04CST2019使用SimpleDateFormat对时间进行格式化,但SimpleDateFormat是线程不安全
Stella981 Stella981
3年前
HIVE 时间操作函数
日期函数UNIX时间戳转日期函数: from\_unixtime语法:   from\_unixtime(bigint unixtime\, string format\)返回值: string说明: 转化UNIX时间戳(从19700101 00:00:00 UTC到指定时间的秒数)到当前时区的时间格式举例:hive   selec
Wesley13 Wesley13
3年前
mysql 常用日期操作函数以及相关使用技巧整理
1.日期格式化 (指定日期的显示格式)语法:DATE\_FORMAT(date\_string,date\_format)date\_string:指定要转换的原始时间date\_format:指定要转换的显示格式实例:DATE\_FORMAT(now(),'%y%m%d');//now()获取当前时间date\_form
Stella981 Stella981
3年前
Python time模块 返回格式化时间
常用命令  strftimetime.strftime("%Y%m%d%H:%M:%S",formattime)第二个参数为可选参数,不填第二个参数则返回格式化后的当前时间日期201812112:00:00time.strftime('%H:%M:%S')返回当前时间的时分秒time.strftim
Wesley13 Wesley13
3年前
Java日期时间API系列23
  有时候,往往需要统计某个时间区间的销量等问题,这就需要准确的起始时间,获取准确开始时间00:00:00,获取准确结束时间23:59:59。下面增加了一一些方法,获取当天起始时间,昨天起始时间,当前月第一天开始时间,当前月最后一天结束时间,上个月第一天开始时间,上个月最后一天结束时间,某个指定月的起始结束时间等等。其中月份最后一天往往因为月份不同和
码途琉璃狩
码途琉璃狩
Lv1
人有悲欢离合,月有阴晴圆缺,此事古难全。但愿人长久,千里共婵娟。
文章
4
粉丝
0
获赞
0