首页 > 其他分享 >时间

时间

时间:2024-11-17 14:45:41浏览次数:1  
标签:11 SimpleDateFormat println 时间 Date public

JDK7 时间

全世界的时间, 有一个统一的计算标准.

格林尼治时间/格林威治时间 (Greenwich Mean Time) 简称 GMT. 计算核心: 地球自转一天是 24 小时, 太阳直射时为正午 12 点. 后来发现计算误差较大, 现在格林威治时间已经不再作为标准时间来使用了.

到了 2012 年 1 月, 取消了用了将近 130 年的回归制标准时间. 现在, 标准时间是由原子钟来提供的.

原子钟: 利用铯原子的震动的频率计算出来的时间, 作为世界标准时间 (UTC)

铯原子每振动 9,192,631,770 次等于 1 秒钟. 这种计算方式是非常精准的, 2000 万年的误差为 1 秒钟.

中国位于东八区, 要在世界标准时间的基础上加 8 小时.

Date 类

Date 类是一个 JDK 写好的 Javabean 类, 用来描述时间, 精确到毫秒.

利用空参构造创建的对象, 默认表示操作系统当前时间.

利用有参构造创建的对象, 表示指定的时间.

程序示例:

import java.util.Date;

public class demo1 {
    public static void main(String[] args) {
        /*
            public Date() 创建Date对象, 表示当前时间
            public Date(long date) 创建Date对象, 表示指定时间
            public void settime(long time) 设置/修改毫秒值
            public long gettime() 获取时间对象的毫秒值
        */

        // 1.创建对象表示一个时间
        Date d1 = new Date();
        System.out.println(d1);

        // 2.创建对象表示一个指定的时间
        Date d2 = new Date(0L);  // 从时间原点开始, 过了 0 毫秒的那个时间
        System.out.println(d2);

        // 3.settime 修改时间
        // 1000毫秒=1秒
        d2.setTime(1000L);
        System.out.println(d2);

        // 4.getTime获取当前时间的毫秒值
        long time = d2.getTime();
        System.out.println(time);
    }
}

程序示例:

import java.util.Date;
import java.util.Random;

public class demo2 {
    public static void main(String[] args) {
        /*
        需求1:打印时间原点开始一年之后的时间
        需求2:定义任意两个Date对象, 比较一下哪个时间在前, 哪个时间在后
        */

        // 需求2:定义任意两个Date对象, 比较一下哪个时间在前, 哪个时间在后

        Random r = new Random();

        // 创建两个时间对象
        Date d1 = new Date(Math.abs(r.nextInt()));
        Date d2 = new Date(Math.abs(r.nextInt()));
        long time1 = d1.getTime();
        long time2 = d2.getTime();

        if (time1 > time2) {
            System.out.println("第一个时间在后面, 第二个时间在前面");
        } else if (time1 < time2) {
            System.out.println("第二个时间在后面, 第一个时间在前面");
        } else {
            System.out.println("表示两个时间一样");
        }
    }

    private static void method() {
        // 需求1:打印时间原点开始一年之后的时间
        // 1.创建一个对象, 表示时间原点
        Date d1 = new Date(0L);

        // 2.获取d1时间的毫秒值
        long time = d1.getTime();

        // 3.在这个基础上我们要加一年的毫秒值即可
        time = time + 1000L * 60 * 60 * 24 * 365;
        // 4.把计算之后的时间毫秒值, 再设置回d1当中
        d1.setTime(time);
        // 5.打印d1
        System.out.println(d1);
    }
}

SimpleDateFormat 类

Date 类只能按照固定的格式打印时间, 而这个格式不符合一般的阅读习惯.

SimpleDateFormat 类的作用:

  • 格式化: 把时间变成我们喜欢的格式.

  • 解析: 把字符串表示的时间变成 Date 对象.

图片名称

 

图片名称

 

图片名称

 

图片名称

程序示例:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class demo3 {
    public static void main(String[] args) throws ParseException {
        /*
            public simpleDateFormat() 默认格式
            public simpleDateFormat(String pattern) 指定格式
            public final string format(Date date) 格式化(日期对象 ->字符串)
            public Date parse(string source) 解析(字符串 ->日期对象)
        */

        // 1.定义一个字符串表示时间
        String str = "2023-11-11 11:11:11";
        // 2.利用空参构造创建simpleDateFormat对象
        // 细节:
        // 创建对象的格式要跟字符串的格式完全一致
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date = sdf.parse(str);
        // 3.打印结果
        System.out.println(date);  // Sat Nov 11 11:11:11 CST 2023
        System.out.println(date.getTime());  // 1699672271000

        System.out.println("--------------------------------------------------------");
        method1();
        System.out.println("--------------------------------------------------------");
    }

    private static void method1() {
        // 1.利用空参构造创建simpleDateFormat对象, 默认格式
        SimpleDateFormat sdf1 = new SimpleDateFormat();
        Date d1 = new Date(0L);
        String str1 = sdf1.format(d1);
        System.out.println(str1);  // 1970/1/1 上午8:00

        // 2.利用带参构造创建simpleDateFormat对象, 指定格式
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        String str2 = sdf2.format(d1);
        System.out.println(str2); // 1970年01月01日 08:00:00

        // 课堂练习:yyyy年MM月dd日 时:分:秒 星期
        SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss EE");
        String str3 = sdf3.format(d1);
        System.out.println(str3); // 1970年01月01日 08:00:00 周四
    }
}

程序示例:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class demo4 {
    public static void main(String[] args) throws ParseException {
        /*
         * 假设, 你初恋的出生年月日为:2000-11-11
         * 请用字符串表示这个数据, 并将其转换为:2000年11月11日
         *
         * 创建一个Date对象表示2000年11月11日
         * 创建一个SimpleDateFormat对象, 并定义格式为年月日把时间变成:2000年11月11日
         */

        // 1.可以通过2000-11-11进行解析, 解析成一个Date对象
        String str = "2000-11-11";
        // 2.解析
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
        Date date = sdf1.parse(str);
        // 3.格式化
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日");
        String result = sdf2.format(date);
        System.out.println(result);  // 2000年11月11日
    }
}

程序示例:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class demo5 {
    public static void main(String[] args) throws ParseException {
        /*
         * 需求:
         * 秒杀活动开始时间:2023年11月11日 0:0:0(毫秒值)
         * 秒杀活动结束时间:2023年11月11日 0:10:0(毫秒值)
         *
         * 小贾下单并付款的时间为:2023年11月11日 0:01:0
         * 小皮下单并付款的时间为:2023年11月11日 0:11:0
         * 用代码说明这两位同学有没有参加上秒杀活动?
         */

        // 1.定义字符串表示三个时间
        String startstr = "2023年11月11日 0:0:0";
        String endstr = "2023年11月11日 0:10:0";
        String orderstr = "2023年11月11日 0:01:00";
        // 2.解析上面的三个时间, 得到Date对象
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss");
        Date startDate = sdf.parse(startstr);
        Date endDate = sdf.parse(endstr);
        Date orderDate = sdf.parse(orderstr);

        // 3.得到三个时间的毫秒值
        long startTime = startDate.getTime();
        long endTime = endDate.getTime();
        long orderTime = orderDate.getTime();

        // 4.判断
        if (orderTime >= startTime && orderTime <= endTime) {
            System.out.println("参加秒杀活动成功");  // 参加秒杀活动成功
        } else {
            System.out.println("参加秒杀活动失败");
        }
    }
}

标签:11,SimpleDateFormat,println,时间,Date,public
From: https://www.cnblogs.com/Chengkai730/p/18550542

相关文章

  • 飞矢不动悖论——不存在的时间?
    大家好——我是Yinph。今天我们来聊聊一个有趣的悖论——飞矢不动悖论。在哲学与物理学的交汇点上,有一个古老而迷人的悖论,它挑战了我们对时间与运动的直观理解,这便是飞矢不动悖论。这一悖论不仅让古希腊哲学家芝诺困惑不已,也激发了后世无数思想家与科学家的深思。今天,让我们一同......
  • 使用python语言实现获取当前时间,按照电子表样式打印到控制台
    使用python语言实现获取当前时间,按照电子表样式打印到控制台clock.py1fromdatetimeimportdatetime23#数字04zero_line_01='---'5zero_line_02='||'6zero_line_03='||'7zero_line_04='||'8zer......
  • 【11.16T1 公路】 --时间复杂度的计算技巧
    给定\(n\)个点\(m\)条边的无向简单连通图,每条边有颜色\(c_i\),当第\(k\)次经过颜色为\(j\)的边时,需要花费\(k\cdotx_j\)的代价。求在经过边数最小的情况下,\(1\)到各个点的最短路\(n\le50,m\le\binom{n}{2},x_i\le10^4\)做法是简单的,直接处理出最短路\(DAG\)......
  • java根据时区转换获取时间的方法
    方法一:publicstaticvoidmain(String[]args){//假设这是从MySQL获取的UTC时间字符串StringutcTimeStr="2024-09-30T16:00:00Z";try{//解析UTC时间字符串DateTimeparsedDateTime=DateUtil.parse(utcTimeStr......
  • 【FastAPI】解决下载文件预处理时间较长的问题:FastAPI 实现异步任务处理
    解决下载文件预处理时间较长的问题:FastAPI实现异步任务处理在开发Web应用时,我们经常会遇到需要对文件进行预处理的场景。例如,用户请求下载一个文件之前,需要进行压缩、转换或者数据处理等操作。然而,这些预处理任务往往会花费较长时间,如果我们在后端直接处理这些任务,会导......
  • 第24天文件操作&时间编程
    目录文件操作基于缓冲区的文件操作--高级IO基于非缓冲区的文件操作--低级IO文件描绘符函数:open()函数名:close()函数名write()函数名:read()函数名:lseek()时间编程有关时间的shell命令时间函数(API)函数名:time()函数名:gmtime()函数名:ctime()localtime/gmtime/ctime......
  • layui-laydate时间日历控件详细示例
     layui下载地址:http://www.layui.com/此控件可使用layui或者独立版的layDate,两者初始化有些不同1.在layui模块中使用layui.code<!DOCTYPEhtml><html><head><metacharset="utf-8"><title>layDate快速使用</title><linkrel="stylesheet"......
  • JS之Date时间处理
     初始化当前时间://1.使用构造函数方式varnewDate=newDate()//2.使用函数方式vardate=Date()//返回的是一个Date对象console.log(newDate)//返回的是表示当前时间的字符串console.log(date);初始化指定时间:通过Date对象初始化时间为指定的年月日可......
  • MATLAB实现PSO-KELM粒子群算法优化核极限学习机时间序列预测
    目录项目背景介绍...1项目目标与意义...1项目挑战...1项目特点与创新...1项目应用领域...2项目效果预测图程序设计...2项目模型架构...2项目模型描述...2项目模型算法流程图...4项目结构设计...5项目部署与应用...5项目扩展...5项目应该注意事项...5......
  • JAVASCRIPT 将推出新的时间、日期和集合功能
    我们预计将在ECMAScript2025中看到的重大JavaScript新功能,以及导致它们延迟的讨论。译自JavaScriptDueforNewTime,DateandSetFeaturesNextYear,作者MaryBranscombe。JavaScript下一个年度更新将在新年初确定其包含的功能,包括在2025年3月前达到最终第四阶......