java中的DateTime的具体使用

目录
  • 1.初始化时间
  • 2.按格式输出时间(将DateTime格式转换为字符串)
  • 3.将字符串转换为DateTime格式
  • 4.取得当前时间
  • 5.计算两个日期间隔的天数
  • 6.增加日期
  • 7.减少日期
  • 8.判断是否闰月
  • 9.DateTime与Date转换
  • 10.DateTime与Calendar转换
  • 字符串和java.utils.Date相互转换
  • java.sql.Date向数据库写入日期
  • java.sql.Timestamp向数据库中写入时间

引入org.joda.time.DateTime

<dependency>
   <groupId>joda-time</groupId>
   <artifactId>joda-time</artifactId>
   <version>2.9.8</version>
</dependency>

1.初始化时间

DateTime time = new DateTime(2018,4,23,23, 7,18,888);
// 2018年4月23日23点7分18秒888毫秒  

2.按格式输出时间(将DateTime格式转换为字符串)

 String time = dateTime.toString("yyyy-MM-dd hh:mm:ss.SSSa");

小写hh是12小时制,大写HH是24小时制

3.将字符串转换为DateTime格式

DateTimeFormatter format = DateTimeFormat .forPattern("yyyy-MM-dd HH:mm:ss");  
DateTime dateTime = DateTime.parse("2018-4-23 23:12:16", format); 

4.取得当前时间

DateTime time= new DateTime();

5.计算两个日期间隔的天数

 LocalDate start=new LocalDate(2018,4,23);    
 LocalDate end=new LocalDate(2019, 06, 16);    
 int days = Days.daysBetween(start, end).getDays(); 

6.增加日期

      DateTime dateTime = DateTime.parse("2018-04-23");  
                dateTime = dateTime1.plusDays(1);  
                dateTime = dateTime1.plusHours(2);  
                dateTime = dateTime1.plusMinutes(3);  
                dateTime = dateTime1.plusMonths(4);  
                dateTime = dateTime1.plusSeconds(5);  
                dateTime = dateTime1.plusWeeks(6);  
                dateTime = dateTime1.plusYears(7);  

7.减少日期

  DateTime dateTime = DateTime.parse("2018-04-23");  
                dateTime = dateTime1.minusMillis(1);  
                dateTime = dateTime1.minusHours(1);  
                dateTime = dateTime1.minusSeconds(1);

8.判断是否闰月

DateTime time = new DateTime();
 org.joda.time.DateTime.Property month = time.monthOfYear();
  System.out.println("是否闰月:" + month.isLeap());

9.DateTime与Date转换

DateTime time = new DateTime(new Date());
 Date date = time.toDate();
 DateTime time2 = new DateTime(System.currentTimeMillis());
 time2.getMillis();

10.DateTime与Calendar转换

Calendar calendar = Calendar.getInstance();    

补充:

字符串和java.utils.Date相互转换

字符串转化为Date类型

DateFormat format = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss");    // 这里填写的是想要进行转换的时间格式
String str = "2016-12-11 17:17:10";         // 时间字符串

java.utils.Date date = null;
try{
date = format.parse(str);
}catch(Exception e){
e.printStackTrace();
}
 

Date类型转化为字符串

DateFormat format = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss");    // 这里填写的是想要进行转换的时间格式
Date date = new java.utils.Date();      // 获取当前时间
String str = format.format(date);
// str = "2016-12-11 17:17:10"

java.sql.Date向数据库写入日期

这里就需要java.sql.Date和java.utils.Date进行相互转换了,这个转换一般比较容易,利用构造方法和.getTime() 方法进行转化。

java.utils.Date date = new java.utils.Date();   // 获取当前时间
java.sql.Date sql_date = new java.sql.Date(date.getTime()); //转换成java.sql.Date

接着使用PreparedStatement 向数据库中写入时间,即可。

ps.setDate(1, new java.sql.Date(date.getTime()));   // 设置项

java.sql.Timestamp向数据库中写入时间

需要注意的是,上边一种方法只能将日期写入到数据库中,为了能够将时间精确到s甚至是ms。我们需要使用java.sql.Timestamp 类型。
java.sql.Timestamp 类型的构造函数也可以使用Long进行初始化

Date date = new Date();
Timestamp timeStamp = new Timestamp(date.getTime());

故在生成java.utils.Date时,将时间精确到s,然后使用预编译语句执行SQL语句

Date date = new Date();
Timestamp timeStamp = new Timestamp(date.getTime());
 sql= "insert into flowmeter2(total,std_flow,temp,press,time) values(?,?,?,?,?)";
        try {
            PreparedStatement ps = connection.prepareStatement(sql);
            ps.setString(1, total);
            ps.setString(2, std_flow);
            ps.setString(3, temp);
            ps.setString(4, press);
            ps.setTimestamp(5, timeStamp);
            ps.executeUpdate();
            System.out.println("添加成功!");
            connection.close();

到此这篇关于java中的DateTime的具体使用的文章就介绍到这了,更多相关java DateTime使用内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java8时间转换(LocalDateTime)代码实例

    这篇文章主要介绍了java8时间转换(LocalDateTime)代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.将LocalDateTime转为自定义的时间格式的字符串 public static String getDateTimeAsString(LocalDateTime localDateTime, String format) { DateTimeFormatter formatter = DateTimeFormatt

  • Java8新特性时间日期库DateTime API及示例详解

    Java8新特性的功能已经更新了不少篇幅了,今天重点讲解时间日期库中DateTime相关处理.同样的,如果你现在依旧在项目中使用传统Date.Calendar和SimpleDateFormat等API来处理日期相关操作,这篇文章你一定不要错过.来刷新你的知识库吧! 背景 Java对日期.日历及时间的处理一直以来都饱受诟病,比如java.util.Date和java.util.Calendar类易用性差,不支持时区,非线程安全:还有用于格式化日期的类DateFormat也是非线程安全的等问题. J

  • Java使用DateTimeFormatter实现格式化时间

    用扫描器获取输入的时间(年月日时分),这个时间的格式是常用的格式,然后格式化这个时间,把格式化的时间输出到控制台,可以在控制台重复输入时间.格式化的时间参考企业微信聊天记录的展示时间.用DateTimeFormatter实现,功能如下: 同年: 不同年: 同月:月日+上午/下午+时分 同年不同月:月日+时分 今天:上午/下午+时分 明天:明天+上午/下午+时分 昨天:昨天+上午/下午+时分 包括今天在内的一周内:星期+上午/下午+时分 首先看一下测试类: package hrkj; import

  • JDBC中使用Java8的日期LocalDate和LocalDateTime操作mysql、postgresql

    前言 相信大家应该都知道,在实体Entity里面,可以使用java.sql.Date.java.sql.Timestamp.java.util.Date来映射到数据库的date.timestamp.datetime等字段 但是,java.sql.Date.java.sql.Timestamp.java.util.Date这些类都不好用,很多方法都过时了. Java8里面新出来了一些API,LocalDate.LocalTime.LocalDateTime 非常好用 如果想要在JDBC中,使用Ja

  • Java LocalDateTime常用操作方法

    Java8提供了新的时间接口LocalDateTime.本文主要介绍了Java8中LocalDateTime的一些常用操作方法.不多说,直接上代码.欲知详情,可以看看官网. LocalDateTime localDateTime = LocalDateTime.now(); //时间运算,相加相减 System.out.println(localDateTime.plusYears(2)); //加2年 System.out.println(localDateTime.plusDays(2));

  • Java使用DateTimeFormatter格式化输入的日期时间

    要求: 用DateTimeFormatter实现: 用扫描器获取输入的时间(年月日时分),这个时间的格式是常用的格式,然后格式化这个时间,把格式化的时间输出到控制台,可以在控制台重复输入时间.格式化的时间参考企业微信聊天记录的展示时间 分析: 1.时间的常用格式为: xxxx-xx-xx xx:xx xxxx/xx/xx xx:xx xxxx.xx.xx xx:xx 等格式 2.微信显式时间格式为: 今天显式: 00:01 - 23:59 ; 昨天显式: 昨天 01:01 ; 前天显式: 周几

  • java中的DateTime的具体使用

    目录 1.初始化时间 2.按格式输出时间(将DateTime格式转换为字符串) 3.将字符串转换为DateTime格式 4.取得当前时间 5.计算两个日期间隔的天数 6.增加日期 7.减少日期 8.判断是否闰月 9.DateTime与Date转换 10.DateTime与Calendar转换 字符串和java.utils.Date相互转换 java.sql.Date向数据库写入日期 java.sql.Timestamp向数据库中写入时间 引入org.joda.time.DateTime <dep

  • 详解Java中格式化日期的DateFormat与SimpleDateFormat类

    DateFormat 1. DateFormat 介绍 DateFormat 的作用是 格式化并解析"日期/时间".实际上,它是Date的格式化工具,它能帮助我们格式化Date,进而将Date转换成我们想要的String字符串供我们使用 不过DateFormat的格式化Date的功能有限,没有SimpleDateFormat强大:但DateFormat是SimpleDateFormat的父类.所以,我们先对DateFormat有个整体了解,然后再学习SimpleDateFormat.

  • java中如何获取时间戳的方法实例

    前言 数字时间戳技术是数字签名技术一种变种的应用.是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数(引用自百度百科) 在java开发过程中经常会遇到统计某一天或是某一个月的数据,因此常常需要获取截取数据的两个时间戳(比如统计今天的数据,则需要获取一个开始时间为今天零点以及一个结束时间为明天零点),然后根据数据相关的时间是否在该时间区间内来判断是否将其计入统计数据中. 一.java获取时间戳 话不多说,首先我们先拿上面的例

  • 详解 Java中日期数据类型的处理之格式转换的实例

    详解 Java中日期数据类型的处理之格式转换的实例 概要: 日期以及时间格式处理,在Java中时间格式一般会涉及到的数据类型包括Calendar类和Date类. Date类: 1.Date类型转String类型(以时间格式1970-01-01 01:01:01为例) //yyyy-MM-dd HH:mm:ss表示24时间进制 SimpleDateFormat sDateFormat=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); String

  • Java中使用websocket实现在线聊天功能

    很早以前为了快速达到效果,使用轮询实现了在线聊天功能,后来无意接触了socket,关于socket我的理解是进程间通信,首先要有服务器跟客户端,服务的启动监听某ip端口定位该进程,客户端开启socket分配ip端口连接服务端ip端口,于是两个进程间便可以通信了.下面简单画个图理解. but,今天还是准备分享websocket的使用,先上效果,再贴代码. 第一步启动socket服务. 然后连接客户端连接服务器,加入聊天室,分别使用googel(白玉京,沈浪),火狐(楚留香),ie(李寻欢)进行测试

  • Java中时间API的基本使用教程

    1. 时区概念 国际经度会议(又称国际子午线会议)上,规定将全球划分为24个时区(东.西各12个时区).规定英国的格林尼治天文台旧址为中时区(零时区).东1-12区,西1-12区.每个时区横跨经度15度,时间正好是1小时.最后的东.西第12区各跨经度7.5度,以东.西经180度为界.每个时区的中央经线上的时间就是这个时区内统一采用的时间,称为区时,相邻两个时区的时间相差1小时.英国(格林尼治天文台旧址)为本初子午线,即零度经线. 时区的表格划分 为什么全世界不使用统一的时间 于各个地区所在地球位

  • Java中joda日期格式化工具的使用示例

    1.基本介绍 Java自带日期格式化工具DateFormat ,但是DateFormat 的所有实现,包括 SimpleDateFormat 都不是线程安全的,因此你不应该在多线程序中使用,除非是在对外线程安全的环境中使用,如 将 SimpleDateFormat 限制在 ThreadLocal 中.如果你不这么做,在解析或者格式化日期的时候,可能会获取到一个不正确的结果.因此,从日期.时间处理的所有实践来说,我强力推荐使用joda-time 库. 2.joda-time的使用 引入依赖 <de

  • java中避免集合死链调用详情

    目录 1. 前言 2. 场景 3. 环境 3.1 开发环境准备 3.2 数据准备 3.2.1 Mysql数据库表及数据 3.2.2 redis库数据 4. 解决方式 5.完整代码 5.1 Model 5.2 Controller 5.3 Service 5.4 Service 实现类 6.测试 1. 前言  开发过程中, 一些集合 的变动会触发任务去 改变 其他的集合 ,为了保障任务的正确执行,应避免出现死循环调用,即对 集合之间的影响关系 进行一些限制.怕日后遗忘,特在此记录. 2. 场景 A

  • Java中常用时间的一些相关方法

    目录 前言 一.获取当前时间的方式 二.获取当月第n天 三.格式化为字符串 四.加减时间(单位可以是秒,小时等) 五.通过出生日期获取年龄 六.判断两个时间段是否覆盖 七.求两个时间间隔 八.UTC时间与北京时间转换 总结 前言 在我们java开发中,Date日期这个字段会被经常使用,比如获取当前系统的时间,获取上个月,上一年的时间,以及获取两个日期相差的时分秒数,或者对日期类型进行格式化,等等,等等,下面将给大家详细介绍下Java中常用时间的一些相关方法 一.获取当前时间的方式 public

  • 详解Java中自定义注解的使用

    目录 什么是注解 注解的注意事项 注解的本质 自定义注解使用 使用方式 1 使用方式 2 什么是注解 在早期的工作的时候 ,自定义注解写的比较多,可大多都只是因为 这样看起来 不会存在一堆代码耦合在一起的情况,所以使用了自定义注解,这样看起来清晰些, Annontation是Java5开始引入的新特征,中文名称叫注解. 它提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metadata)与程序元素(类.方法.成员变量等)进行关联.为程序的元素(类.方法.成员变量)加上更直观.更明了的说

随机推荐