我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

前言

在我们java开发中,Date日期这个字段会被经常使用,比如获取当前系统的时间,获取上个月,上一年的时间,以及获取两个日期相差的时分秒数,或者对日期类型进行格式化,等等,等等,下面将给大家详细介绍下Java中常用时间的一些相关方法

一、获取当前时间的方式


public static void main(String[] args) {
    //Date
    Date now = new Date();
    System.out.println(now);

    //java8的时间
    LocalDateTime localDateTime = LocalDateTime.now();
    System.out.println(localDateTime);


    Calendar calendar = Calendar.getInstance();
    Date time = calendar.getTime();
    System.out.println(time);
    System.out.println("年" + calendar.get(Calendar.YEAR));
    System.out.println("月" + (calendar.get(Calendar.MONTH) + 1));

    //joda time
    DateTime dateTime = DateTime.now();
    System.out.println(dateTime);
}


获取当前时间可以使用Date LocalDatetime Calendar  Datetime

二、获取当月第n天


public static void main(String[] args) {
    //建议使用Calendar  可以设置年月日时分秒
    Calendar calendar = Calendar.getInstance();
    ////当月16
    calendar.set(Calendar.DAY_OF_MONTH, 16);
    System.out.println(calendar.getTime());

    //当月16
    DateTime now = DateTime.now();
    DateTime dateTime = now.withDayOfMonth(16);
    System.out.println(dateTime);

    //当月14
    LocalDateTime localDateTime = LocalDateTime.now();
    System.out.println(localDateTime.withDayOfMonth(14));

    //1月11
    System.out.println(localDateTime.withMonth(1).withDayOfMonth(11));
}

三、格式化为字符串


```
//使用SimpleDateFormat
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(format.format(new Date()));

//使用Calendar
Calendar calendar = Calendar.getInstance();
System.out.println(String.format("%s年%s月%s日%s时%s分%s秒", calendar.get(Calendar.YEAR),
        calendar.get(Calendar.MONTH) + 1, calendar.get(Calendar.DAY_OF_MONTH),
        calendar.get(Calendar.HOUR_OF_DAY), calendar.get(Calendar.MINUTE), calendar.get(Calendar.SECOND)));

LocalDateTime now = LocalDateTime.now();
String str = now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
System.out.println(str);
```

四、加减时间(单位可以是秒,小时等)


public static void main(String[] args) {
    Date now = new Date();
    //加一小时
    long time = now.getTime() + (60 * 60 * 1000);
    System.out.println(new Date(time));

    
    //引入Hutool 加一小时
    System.out.println(DateUtil.offset(now, DateField.HOUR, 1));
    //减一小时
    System.out.println(DateUtil.offset(now, DateField.HOUR, -1));

    LocalDateTime localDateTime = LocalDateTime.now();
    System.out.println("加一小时" + localDateTime.plusHours(1));
    System.out.println("减一小时" + localDateTime.minusHours(1));

    DateTime dateTime = DateTime.now();
    System.out.println(dateTime.plusHours(1));
    System.out.println(dateTime.minusHours(1));
}

LocalDateTime和DateTime都自带增加和减少时间的方法

五、通过出生日期获取年龄


public static void main(String[] args) {
    //时间1990-12-05
    DateTime birthDay = DateTime.now().withYear(1990).withMonthOfYear(10).withDayOfMonth(23);
    System.out.println(birthDay);
    //获取相差得年 会进行月份和日期比较 如
    Years years = Years.yearsBetween(birthDay, new DateTime());
    System.out.println(years);
    System.out.println(years.getYears());
}

还可以使用年份相减,再比较月,日的方法得到生日

六、判断两个时间段是否覆盖


public static void main(String[] args) {
    DateTime now = DateTime.now();

    DateTime start1 = now;
    DateTime end1 = now.plusMinutes(1);

    DateTime start2 = now.plusSeconds(50);
    DateTime end2 = now.plusMinutes(2);

    Interval interval1 = new Interval(start1, end1);
    Interval interval2 = new Interval(start2, end2);

    System.out.println(interval1.overlaps(interval2));
    System.out.println(start1.getMillis() < end2.getMillis() && start2.getMillis() < end1.getMillis());
}

七、求两个时间间隔


public static void main(String[] args) {
    DateTime now = DateTime.now();
    //开始时间
    Date startTime = now.toDate();
    //结束时间
    Date endTime = now.plusHours(1).toDate();
    //1小时
    System.out.println("开始时间与结束时间的时间间隔:" + DateUtil.between(startTime, endTime, DateUnit.SECOND));

    long time = (endTime.getTime() - startTime.getTime()) / 1000;
    System.out.println(time);
}

八、UTC时间与北京时间转换


public static void main(String[] args) throws ParseException {
    Date now = new Date();
    Date utcDate = bj2UTC(now);
    //utc时间 
    System.out.println(utcDate);
    //北京时间
    System.out.println(utc2BJ(utcDate));

    DateTime dateTime = DateTime.now().withDayOfMonth(1).withHourOfDay(0).withMinuteOfHour(0).withSecondOfMinute(0);
    System.out.println(dateTime);
    System.out.println(bj2UTC(dateTime.toDate()));
}

public static Date bj2UTC(Date date) {
    if (date == null) {
        return null;
    }
    LocalDateTime localDateTime = LocalDateTime.ofInstant(date.toInstant(), ZoneId.of("-8"));
    return Date.from(localDateTime.atOffset(ZoneOffset.UTC).toInstant());
}

public static Date utc2BJ(Date date) {
    if (date == null) {
        return null;
    }
    LocalDateTime localDateTime = LocalDateTime.ofInstant(date.toInstant(), ZoneId.of("+8"));
    return Date.from(localDateTime.atOffset(ZoneOffset.UTC).toInstant());
}

北京时间=UTC+8

总结

到此这篇关于Java中常用时间的一些相关方法的文章就介绍到这了,更多相关Java常用时间方法内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Java常用的时间相关转化有哪些

这篇文章主要讲解了“Java常用的时间相关转化有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java常用的时间相关转化有哪些”吧!Java常用的时间相关转化下面代码的一些变量基本解释说
2023-06-20

java中optional的一些常用方法总结

Java8引入了一个非常强大的特性就是Optional类,其主要解决的问题就是我们编程时常常遇到的空指针异常,下面这篇文章主要给大家介绍了关于java中optional的一些常用方法,需要的朋友可以参考下
2023-05-14

Java开发时常用的相关Linux命令整理

这篇文章主要讲解了“Java开发时常用的相关Linux命令整理”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java开发时常用的相关Linux命令整理”吧!1.查找文件代码如下:find /
2023-06-12

PostgreSQL时间处理的一些常用方式总结

目录1.获取当前时间2.date_part函数3.extract()函数4.日期格式化函数5.时间运算6.计算时间差总结1.获取当前时间now()函数:select now();current_timestamp,同now():sel
2023-03-15

java中的常用方法有哪些

1、trim()方法trim() 方法用于删除字符串的头尾空白符。实例:public class Test { public static void main(String args[]) { String Str = new String
java中的常用方法有哪些
2020-11-11

java中常用的方法有哪些

Java中常用的方法有以下几种:1. String类的方法:常用的字符串操作方法,如substring()、indexOf()、toUpperCase()、toLowerCase()等。2. Math类的方法:常用的数学运算方法,如sqrt
2023-09-22

C#常用日期时间方法有哪些

本篇内容主要讲解“C#常用日期时间方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#常用日期时间方法有哪些”吧!一、月份英文简写DateTime dt = DateTime.Now;s
2023-06-30

java中stringbuffer的常用方法有哪些

append(String str): 将指定字符串添加到StringBuffer的末尾。2. insert(int offset, String str): 在指定位置插入指定字符串。3. delete(int start, int en
2023-10-18

java中optional的常用方法有哪些

这篇文章主要介绍了java中optional的常用方法有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇java中optional的常用方法有哪些文章都会有所收获,下面我们一起来看看吧。前言Java中的Opt
2023-07-05

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录