JAVA 获取系统日期时间

简介: JAVA 获取系统日期时间

方法例子都是亲自实践过的,作为知识共享。如果有更好的或者说不足之处请多多指点。


首先先明确,java里我目前了解获取得到当地系统时间的方法有四个:


a.      new Date().getTime();


b.      System.currentTimeMillis();


c.      Calendar.getInstance().getTimeInMills();


d.     Clock.systemDefaultZone().millis();  


其中d方法是在jdk8的时候新引入的。



下面是我对上面四种方法的测试调用例子代码:


除了包含以上提及的四种获取系统时间的方法(是以毫秒数的形式返回的),


还分别包括


SimpleDateFormat和


DateTimeFormatter.ofPattern


(这里面用到的 LocalDateTime也是jdk8新引入的)


将传入的long形态或是string形态数据转换为固定的日期格式。


这样就能利用4种方法获取系统时间,然后再调用对应的方法来将毫秒串数据转变为日期格式。

import java.text.SimpleDateFormat;
import java.time.Clock;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Calendar;
import java.util.Date;
/*
 * JCcc
 */
public class TestDateTime  {
    public static void main(String[] args) {
       //以下四种方式都是返回毫秒的结果,但是可以用过日期格式化来将其转变成时间格式
        Date date = new Date();
        long time1 = date.getTime();
        System.out.println("第一种方式: "+formatTime(time1));
        long time2 = System.currentTimeMillis();
        System.out.println("第二种方式: "+formatTime(time2));
        Calendar calendar = Calendar.getInstance();
        long time3 = calendar.getTimeInMillis();
        System.out.println("第三种方式: "+time3);
//最后这一种是JDK8后面引入的
        long time4 = Clock.systemDefaultZone().millis();
        System.out.println("第四种方式: "+time4);
        System.out.println("直接格式化:"+formatTime1());
    }
    public static String formatTime(long time) {
        Date date = new Date(time);
        //定义时间的格式
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        String strTime = sdf.format(date);
        return strTime;
    }
    public static String formatTime1(){
        LocalDateTime localDateTime = LocalDateTime.now();
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss");
        String strTime = dtf.format(localDateTime);
        return strTime;
    }
}

运行效果为:


第一种方式: 2018-04-11 11:33:11

第二种方式: 2018-04-11 11:33:11

第三种方式: 1523417591120

第四种方式: 1523417591169

直接格式化:2018-04-11 11:33:11


接下来这个是反其道而行,满足不同的需求。这个是将获取的到的系统时间以及是日期格式的,或者是手动填入的时间,将其转换回去毫秒出串数据的例子代码:


其中主要利用的是 java.text.SimpleDateFormat里面的parse这个解析方法。

import java.text.ParseException;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Date;
/*
 * JCcc
 */
public class SimpleDateFormat{
    public static void main(String[] args) {
        //时间的解析:将String类型的时间转换为long类型的毫秒数
        //以下是先获取了系统时间,定义格式为年月日时分秒,再通过SimpleDateFormat下的parse()将解析回去毫秒状态
        LocalDateTime localDateTime = LocalDateTime.now();
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss");
        String strTime1 = dtf.format(localDateTime);
        System.out.println("时间效果"+strTime1);
        System.out.println(parseTime1(strTime1));
    }
    public static long parseTime1(String strTime){
        long time = 0;
        try {
            java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
            Date date = sdf.parse(strTime);
            time = date.getTime();
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return time;
    }
}

运行效果为:


时间效果2018-04-11 11:11:20


1523416280000

 

单独地去获取时间里面地具体年,月,日,时,分,秒 的方法例子代码:

import java.util.Calendar;
public class Dateymdhms {
    /*
     * JCcc
     */
    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
        System.out.println("获取年份:"+calendar.get(Calendar.YEAR));
        System.out.println("获取月份:"+calendar.get(Calendar.MONTH));// 0 - 11
        System.out.println("获取日:"+calendar.get(Calendar.DATE));
        System.out.println("获取时:"+calendar.get(Calendar.HOUR_OF_DAY));
        System.out.println("获取分:"+calendar.get(Calendar.MINUTE));
        System.out.println("获取秒:"+calendar.get(Calendar.SECOND));
    }
}

运行效果:

 

获取年份:2018

获取月份:3

获取日:11

获取时:11

获取分:52

获取秒:0

相关文章
|
19天前
|
前端开发 Java 关系型数据库
基于Java+Springboot+Vue开发的鲜花商城管理系统源码+运行
基于Java+Springboot+Vue开发的鲜花商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的鲜花商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。技术学习共同进步
94 7
|
1月前
|
机器学习/深度学习 算法 Java
java家政系统实现智能派单?
本项目旨在构建一个基于JAVA的家政系统,通过实时派单满足用户即时需求。系统涵盖用户需求收集、服务人员数据库管理、智能匹配算法(如综合评分、机器学习模型)、实时通信通知、订单状态跟踪及动态调整等功能。同时,优化用户体验,强化安全与隐私保护,并采用微服务架构确保高并发稳定性。通过持续数据分析与算法迭代,实现高效精准的智能派单,提升服务质量和客户满意度。
|
12天前
|
供应链 JavaScript 前端开发
Java基于SaaS模式多租户ERP系统源码
ERP,全称 Enterprise Resource Planning 即企业资源计划。是一种集成化的管理软件系统,它通过信息技术手段,将企业的各个业务流程和资源管理进行整合,以提高企业的运营效率和管理水平,它是一种先进的企业管理理念和信息化管理系统。 适用于小微企业的 SaaS模式多租户ERP管理系统, 采用最新的技术栈开发, 让企业简单上云。专注于小微企业的应用需求,如企业基本的进销存、询价,报价, 采购、销售、MRP生产制造、品质管理、仓库库存管理、财务应收付款, OA办公单据、CRM等。
91 23
|
3月前
|
JavaScript NoSQL Java
接替此文【下篇-服务端+后台管理】优雅草蜻蜓z系统JAVA版暗影版为例-【蜻蜓z系列通用】-2025年全新项目整合搭建方式-这是独立吃透代码以后首次改变-独立PC版本vue版搭建教程-优雅草卓伊凡
接替此文【下篇-服务端+后台管理】优雅草蜻蜓z系统JAVA版暗影版为例-【蜻蜓z系列通用】-2025年全新项目整合搭建方式-这是独立吃透代码以后首次改变-独立PC版本vue版搭建教程-优雅草卓伊凡
257 96
接替此文【下篇-服务端+后台管理】优雅草蜻蜓z系统JAVA版暗影版为例-【蜻蜓z系列通用】-2025年全新项目整合搭建方式-这是独立吃透代码以后首次改变-独立PC版本vue版搭建教程-优雅草卓伊凡
|
13天前
|
Java 区块链 网络架构
酷阿鲸森林农场:Java 区块链系统中的 P2P 区块同步与节点自动加入机制
本文介绍了基于 Java 的去中心化区块链电商系统设计与实现,重点探讨了 P2P 网络在酷阿鲸森林农场项目中的应用。通过节点自动发现、区块广播同步及链校验功能,系统实现了无需中心服务器的点对点网络架构。文章详细解析了核心代码逻辑,包括 P2P 服务端监听、客户端广播新区块及节点列表自动获取等环节,并提出了消息签名验证、WebSocket 替代 Socket 等优化方向。该系统不仅适用于农业电商,还可扩展至教育、物流等领域,构建可信数据链条。
|
2月前
|
数据可视化 JavaScript Java
2K star!三分钟搭建企业级后台系统,这款开源Java框架绝了!
"LikeAdmin Java是基于Spring Boot + Mybatis Plus + Vue 3的快速开发平台,内置RBAC权限管理、工作流引擎、数据可视化、三方登录等核心模块,助力开发者快速构建企业级中后台管理系统"
154 18
|
2月前
|
前端开发 JavaScript Java
[Java计算机毕设]基于ssm的OA办公管理系统的设计与实现,附源码+数据库+论文+开题,包安装调试
OA办公管理系统是一款基于Java和SSM框架开发的B/S架构应用,适用于Windows系统。项目包含管理员、项目管理人员和普通用户三种角色,分别负责系统管理、请假审批、图书借阅等日常办公事务。系统使用Vue、HTML、JavaScript、CSS和LayUI构建前端,后端采用SSM框架,数据库为MySQL,共24张表。提供完整演示视频和详细文档截图,支持远程安装调试,确保顺利运行。
127 17
|
1月前
|
存储 安全 Java
Java 集合框架详解:系统化分析与高级应用
本文深入解析Java集合框架,涵盖List、Set、Map等核心接口及其常见实现类,如ArrayList、HashSet、HashMap等。通过对比不同集合类型的特性与应用场景,帮助开发者选择最优方案。同时介绍Iterator迭代机制、Collections工具类及Stream API等高级功能,提升代码效率与可维护性。适合初学者与进阶开发者系统学习与实践。
62 0
|
3月前
|
前端开发 JavaScript Java
【03】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架搭建-服务端-后台管理-整体搭建-优雅草卓伊凡商业项目实战
【03】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架搭建-服务端-后台管理-整体搭建-优雅草卓伊凡商业项目实战
212 13
【03】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架搭建-服务端-后台管理-整体搭建-优雅草卓伊凡商业项目实战
|
3月前
|
人工智能 JavaScript 关系型数据库
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
146 14
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战