date和calendar日期的用法

util的data转换成sql的data

java.util.Date utilDate = new java.util.Date();
java.sql.Date sDate = new java.sql.Date(uDate.getTime());

创建Date对象

Date date = new Date();
System.out.println(date); Calendar calendar = Calendar.getInstance();
calendar.set(90, Calendar.DECEMBER, 11);
Date myBirthDate = calendar.getTime();
System.out.println(myBirthDate); calendar.set(90, Calendar.DECEMBER, 11, 8, 32, 35);
Date myBirthDatenTime = calendar.getTime();
System.out.println(myBirthDatenTime);

格式化

String formatString = "yyyy/MM/dd hh:mm.ss";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(formatString); Date date = Calendar.getInstance().getTime();
String formattedDate = simpleDateFormat.format(date);

Instant

Instant now = Instant.now();
Instant epoch1 = Instant.ofEpochMilli(0);
Instant epoch2 = Instant.parse("1970-01-01T00:00:00Z");
java.time.temporal.ChronoUnit.MICROS.between(epoch1, epoch2);

ChronoUnit

时间间隔

LocalTime start = LocalTime.of(1, 0, 0); // hour, minute, second
LocalTime end = LocalTime.of(2, 10, 20); // hour, minute, second long halfDays1 = start.until(end, ChronoUnit.HALF_DAYS); // 0
long halfDays2 = ChronoUnit.HALF_DAYS.between(start, end); // 0 long hours1 = start.until(end, ChronoUnit.HOURS); // 1
long hours2 = ChronoUnit.HOURS.between(start, end); // 1 long minutes1 = start.until(end, ChronoUnit.MINUTES); // 70
long minutes2 = ChronoUnit.MINUTES.between(start, end); // 70 long seconds1 = start.until(end, ChronoUnit.SECONDS); // 4220
long seconds2 = ChronoUnit.SECONDS.between(start, end); // 4220 long millisecs1 = start.until(end, ChronoUnit.MILLIS); // 4220000
long millisecs2 = ChronoUnit.MILLIS.between(start, end); // 4220000
long microsecs1 = start.until(end, ChronoUnit.MICROS); // 4220000000
long microsecs2 = ChronoUnit.MICROS.between(start, end); // 4220000000
long nanosecs1 = start.until(end, ChronoUnit.NANOS); // 4220000000000
long nanosecs2 = ChronoUnit.NANOS.between(start, end); // 4220000000000

LocalTime

只有时

基本用法
LocalTime time = LocalTime.now();
time = LocalTime.MIDNIGHT;
time = LocalTime.NOON;
time = LocalTime.of(12, 12, 45); time.plusMinutes(1);
time.getMinutes();
time.minusMinutes(1); 转换成Data
LocalTime lTime = LocalTime.now();
Instant instant = lTime.atDate(LocalDate.of(A_YEAR, A_MONTH, A_DAY)).
atZone(ZoneId.systemDefault()).toInstant();
Date time = Date.from(instant);

LocalDate

没有时

基本用法
LocalDate lDate = LocalDate.now();
lDate = LocalDate.of(2017, 12, 15);
lDate = LocalDate.parse("2017-12-15"); LocalDate.now(ZoneId.systemDefault()); LocalData转换成Data
Date date = Date.from(Instant.now());
ZoneId defaultZoneId = ZoneId.systemDefault();
LocalDate localDate = date.toInstant().atZone(defaultZoneId).toLocalDate(); Date.from(localDate.atStartOfDay(defaultZoneId).toInstant()); 其他用法
LocalDate tomorrow = LocalDate.now().plusDays(1);
LocalDateTime anHourFromNow = LocalDateTime.now().plusHours(1);
Long daysBetween = java.time.temporal.ChronoUnit.DAYS.between(LocalDate.now(),
LocalDate.now().plusDays(3)); // 3
Duration duration = Duration.between(Instant.now(),
ZonedDateTime.parse("2016-07-27T07:00:00+01:00[Europe/Stockholm]"))

LocalDateTime


基本用法
LocalDateTime lDateTime = LocalDateTime.now();
lDateTime = LocalDateTime.of(2017, 12, 15, 11, 30);
lDateTime = LocalDateTime.parse("2017-12-05T11:30:30"); LocalDateTime.now(ZoneId.systemDefault()); LocalDateTime转换成Data
Date date = Date.from(Instant.now());
ZoneId defaultZoneId = ZoneId.systemDefault();
LocalDateTime localDateTime = date.toInstant().atZone(defaultZoneId).toLocalDateTime();
Date out = Date.from(localDateTime.atZone(defaultZoneId).toInstant()); 其他用法
LocalDateTime ldp1 = LocalDateTime.parse("2014-03-25T01:30");
String pattern = "d-MM-yyyy HH:mm";
DateTimeFormatter dtF1 = DateTimeFormatter.ofPattern(pattern);
ldp2 = LocalDateTime.parse("15-05-2016 13:55",dtF1);
System.out.println(ldp1 + "\n" + ldp2); DateTimeFormatter dtF2 = DateTimeFormatter.ofPattern("EEE d, MMMM, yyyy HH:mm");
DateTimeFormatter dtF3 = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
LocalDateTime ldtf1 = LocalDateTime.now();
System.out.println(ldtf1.format(dtF2) +"\n"+ldtf1.format(dtF3))

Date转换成字符串

Date today = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MMM-yy");
System.out.println(dateFormat.format(today)); dateFormat.applyPattern("dd-MM-yyyy");
System.out.println(dateFormat.format(today));
dateFormat.applyPattern("dd-MM-yyyy HH:mm:ss E");
System.out.println(dateFormat.format(today));

字符串转换成Date

第一种
Date date = null;
SimpleDateFormat objDf = new SimpleDateFormat(dateFormat);
date = objDf.parse(StringDate); 第二种
DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.SHORT, Locale.US);
String dateStr = "02/25/2016";
Date date = dateFormat.parse(dateStr);
System.out.println(date.getYear()); SHORT 6/30/09 30/06/09
MEDIUM Jun 30, 2009 30 juin 2009
LONG June 30, 2009 30 juin 2009
FULL Tuesday, June 30, 2009 mardi 30 juin 2009

比较日期大小

Boolean.valueOf(today.before(afterday)));
Boolean.valueOf(today.after(afterday)));
Boolean.valueOf(today.equals(afterday)));
Boolean.valueOf(today.isBefore(afterday)));
Boolean.valueOf(today.isAfter(afterday)));
Integer.valueOf(today.compareTo(afterday)));
Boolean.valueOf(today.isEqual(afterday)));

时区

System.out.println(TimeZone.getDefault().getDisplayName());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sdf.format(date)); sdf.setTimeZone(TimeZone.getTimeZone("Europe/London"));
System.out.println(sdf.format(date));

Calendar

Calendar calendar = Calendar.getInstance();
Calendar gregorianCalendar = new GregorianCalendar(); // 创建实例
Calendar gregorianCalendarAtSpecificDay = new GregorianCalendar(2016, Calendar.JANUARY, 1);
Calendar gregorianCalendarAtSpecificDayAndTime = new GregorianCalendar(2016, Calendar.JANUARY, 1,6, 55, 10); calendar.add(Calendar.MONTH, -6); // 增
calendar.roll(Calendar.MONTH, -6); // 减 Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
if (cal.get(Calendar.AM_PM) == Calendar.PM) System.out.println("It is PM");

java成神之——date和calendar日期的用法的更多相关文章

  1. java成神之——集合框架之ArrayList,Lists,Sets

    集合 集合种类 ArrayList 声明 增删改查元素 遍历几种方式 空集合 子集合 不可变集合 LinkedList Lists 排序 类型转换 取交集 移动元素 删除交集元素 Sets 集合特点 ...

  2. 转载_2016,Java成神初年

    原文地址:http://blog.csdn.net/chenssy/article/details/54017826 2016,Java成神初年.. -------------- 时间2016.12. ...

  3. Java成神路上之设计模式系列教程之一

    Java成神路上之设计模式系列教程之一 千锋-Feri 在Java工程师的日常中,是否遇到过如下问题: Java 中什么叫单例设计模式?请用Java 写出线程安全的单例模式? 什么是设计模式?你是否在 ...

  4. java成神之——安全和密码

    安全和密码 加密算法 公钥和私钥加密解密 生成私钥和公钥 加密数据 解密数据 公钥私钥生成的不同算法 密钥签名 生成加密随机数 基本用法 指定算法 加密对象 SealedObject Signatur ...

  5. java成神之——网络编程基本操作

    网络编程 获取ip UDP程序示例 TCP程序 结语 网络编程 获取ip InetAddress id = InetAddress.getLocalHost(); // InetAddress id ...

  6. java成神之——MySQL Connector/J 的基本使用

    使用示例 DBCP连接池 结语 使用示例 public class demo { static Connection con = null; static Statement st = null; s ...

  7. java成神之——线程操作

    线程 Future CountDownLatch Multithreading synchronized Thread Producer-Consumer 获取线程状态 线程池 ThreadLocal ...

  8. java成神之——Fork/Join基本使用

    Fork/Join 大任务分小任务,小任务结果合并 ForkJoinPool pool = new ForkJoinPool(); RecursiveTask<Integer> task1 ...

  9. java成神之——HttpURLConnection访问api

    HttpURLConnection 访问get资源 访问post资源 访问Delete资源 获取状态码 结语 HttpURLConnection 访问get资源 HttpURLConnection c ...

随机推荐

  1. fiddler之使用教程(一)

    一. 什么是fiddler&它可以做什么 fiddler是位于客户端和服务器端的HTTP代理,也是目前最常用的http抓包工具之一.它能够记录客户端和服务器之间的所有HTTP请求,可以针对特定 ...

  2. 51nod 1486

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1486 1486 大大走格子 题目来源: CodeForces 基准时间限 ...

  3. ./startup.sh: /bin/sh^M: bad interpreter: 没有那个文件或目录 解决办法

    这是因为Linux上 的catalina.sh文件格式给修改了,看不出来,这样就必须通过vim编辑下,变为正常的格式,在catalina.sh的命令模式下输入  ( :set ff=unix ),接着 ...

  4. python考试

    py4测试题 1.8<<2等于?322.通过内置函数计算5除以2的余数 divmod(5,2)3.s=[1,"h",2,"e",[1,2,3],&q ...

  5. Ubuntu下VirtualBox kernel driver not installed

    解決方案: 1.sudo apt-get install virtualbox-ose-source2.cd /usr/src3.sudo tar xjvf virtualbox*.bz24.cd m ...

  6. [置顶] kubernetes1.7新特性:新增StorageOS卷插件和Local持久存储

    背景介绍 在Kubernetes中卷的作用在于提供给POD存储,这些存储可以挂载到POD中的容器上,进而给容器提供存储. 从图中可以看到结构体PodSpec有个属性是Volumes,通过这个Volum ...

  7. ubuntu 上的ruby安装

    安装 rbenv git clone git://github.com/sstephenson/rbenv.git ~/.rbenv # 用来编译安装 ruby git clone git://git ...

  8. (二)Nginx反向代理与负载均衡的实现

    引言:nginx正向代理与反向代理在上一篇文章中已经谈论过,这里狗尾草主要告诉大家Nginx对前端的小伙伴来说在工作中如何简单的使用. 1.0什么是反向代理 当我们有一个服务器集群,并且服务器集群中的 ...

  9. HDU - 3374:String Problem (最小表示法模板题)

    Give you a string with length N, you can generate N strings by left shifts. For example let consider ...

  10. linux之epoll

    1. epoll简介 epoll 是Linux内核中的一种可扩展IO事件处理机制,最早在 Linux 2.5.44内核中引入,可被用于代替POSIX select 和 poll 系统调用,并且在具有大 ...