Java中日期API常见问题整理

今天在使用Java日期API的时候遇到的一些问题,自己整理了下。貌似JDK8中有关于时间行的API,可是JDK8用的还不是很多,先弄明白7的相关知识。

问题1:如何以制定格式显示时间?

问题2:如何计算时间间隔?

问题3:如何计算指定时间间隔以后的时间?

下面直接上代码(使用JUnit4进行测试):

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

import org.junit.Test;

public class Time {
    //使用DataFormat以指定格式显示时间
    @Test
    public void display() {
        Date date = new Date();
        DateFormat format = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss");
        String time = format.format(date);
        System.out.println("北京时间:" + time);
    }

    //时间减法,计算时间间隔
    @Test
    public void interval() {
        Date begin = new Date();
        for (int i = 0; i < Integer.MAX_VALUE; i++) {

        }
        Date end = new Date();
        long beginTime = begin.getTime();
        long endTime = end.getTime();
        System.out.println("循环历时:" + (endTime - beginTime) + "ms");
    }

    //时间加法,计算一段时间后的时刻
    @Test
    public void add() {
        DateFormat format = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss");
        Date begin = new Date();
        int interval = 30;
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(begin);
        calendar.add(Calendar.MINUTE, interval);
        Date end = calendar.getTime();
        System.out.println("现在时间:" + format.format(begin));
        System.out.println(interval + "分钟后:" + format.format(end));
    }
}

Calendar和Date类有什么不同呢?

在JDK1.1以前,Date类负责时间格式化和时间到年与日转换等功能。JDK1.1以后时间的格式化由DateFormat类负责,时间与年月日等的转换等功能由Calender负责。这就是为什么我们看到Date类中的好多方法都是Depreated的原因。

时间: 2024-08-27 22:46:11

Java中日期API常见问题整理的相关文章

Java中日期格式化的实现算法

package com.study.test; import java.io.Serializable; import java.text.SimpleDateFormat; import java.util.*; /** * 实现Java中日期的简单格式化,支持以下字段: * yyyy:年 * MM:月 * dd:日 * hh:1~12小时制(1-12) * HH:24小时制(0-23) * mm:分 * ss:秒 * S:毫秒 * E:星期几 * a: 上午/下午 */ public cla

Java中日期格式化YYYY-DD的坑

摘自:https://www.cnblogs.com/tonyY/p/12153335.html Java中日期格式化YYYY-DD的坑 2020-01-05 19:27  兔子托尼啊  阅读(115)  评论(0)  编辑  收藏 写这篇博文是记录下跨年的bug.去年隔壁组的小伙伴就是计算两个日期之间间隔的天数,因为跨年的原因计算有误. 当时测试组的小姐姐也没有模拟出来这种场景,导致上生产环境直接影响线上的数据. 今天逛技术论论坛正好遇到Java日期的操作bug. 1 yyyy 和 YYYY

Java中日期的总结

#####1.日期 日期:主要使用的是*java.util.Date* 以及*java.sql.Date* , sql中的Date是util中Date的子类,关系如下,但是如果直接转换的话会出现Cast转换错误. - java.lang.Object - java.util.Date - java.sql.Date 之间的转换可以通过如: ```javajava.util.Date utildate=new java.util.Date(System.getCurrentTime());java

Java 中日期的几种常见操作 —— 取值、转换、加减、比较

Java 的开发过程中免不了与 Date 类型纠缠,准备总结一下项目经常使用的日期相关操作,JDK 版本 1.7,如果能够帮助大家节约那么几分钟起身活动一下,去泡杯咖啡,便是极好的,嘿嘿.当然,我只提供了可行的解决方案,并不保证是最佳实践,欢迎讨论. 1. 日期取值 在旧版本 JDK 的时代,有不少代码中日期取值利用了 java.util.Date 类,但是由于 Date 类不便于实现国际化,其实从 JDK1.1 开始,就更推荐使用 java.util.Calendar 类进行时间和日期方面的处

Java中日期类型和mysql中日期类型进行整合

1. java与mysql中日期.时间类型总结: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 mysql(版本:5.1.50)的时间日期类型如下: datetime 8bytes xxxx-xx-xx xx:xx:xx 1000-01-01 00:00:00到9999-12-31 23:59:59 timestamp 4bytes xxxx-xx-xx xx:xx:xx 1970-01-01 00:00:01到2038 date 3bytes xxxx-x

java中日期格式的转换和应用

java中主要有3个类用于日期格式转换    DateFormat .SimpleDateFormat.Calendar 1.SimpleDateFormat 该类是DateFormat的子类,一般日期的格式化都是实例化该类实现 具体应用如下 package com.gree.java; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.log

通过基于java实现的网络聊天程序分析java中网络API和Linux Socket API关系

1. 引言 socket网络编程,可以指定不同的通信协议,在这里,我们使用TCP协议实现基于java的C/S模式下“hello/hi”网络聊天程序 2. 目标 1). 通过该网络聊天程序,了解java Socket API接口的基本用法 2). java Socket API简要介绍 3). linux socket API 简单分析 4). tcp协议的连接和终止 5). 探究java socket API 和 linux socket api之间的关系 3. linux socket API

Java 中static的用法整理

static在java中属于使用相当频繁的一个关键字了,下面来总结一下它的用法,顺便梳理一下自己的知识树. 一.static变量: 静态变量在内存中只有一个拷贝,JVM只为静态分配一次内存,在加载类的过程中完成静态变量的内存分配. 实例变量,没创建一个实例,就会为实例变量分配一次内存,实例变量可以在内存中有多个拷贝,互不影响. static成员变量的初始化顺序按照定义的顺序进行初始化. 二.static方法: 首先要明确的一点,static所修饰的变量.方法.代码块等是在JVM中被直接装入内存的

java中字符串的常见问题

相信接触过编程语言的童鞋对字符串不陌生吧,无论是c.c++还是c#等等,几乎所有的编程语言中都少不了字符串,那么,今天就说说java中的字符串. 在java中,声明一个字符串很容易,用String即可,如: String s1="123abc"; String s2="abc"; 相信上面的定义对大家来说就是小菜一碟,那么,我再定义一个s3: String s3 ="123abc"; System.out.println(s1==s3);//tr