博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java常用类-时间处理相关类
阅读量:4203 次
发布时间:2019-05-26

本文共 3865 字,大约阅读时间需要 12 分钟。

“时间如流水,一去不复返”,时间是一维的。所以,我们需要一把刻度尺来表达和度量时间。在计算机世界,我们把 1970 年 1 月 1 日 00:00:00 定为基准时间,每个度量单位是毫秒(1 秒的千分之一)

我们用 long 类型的变量来表示时间,从基准时间往前几亿年,往后几亿年都能表示。如果想获得现在时刻的“时刻数值”,可以使用:

long now = System.currentTimeMillis();

1. Date 时间类(java.util.Date)

import java.util.Date;public class DateTest03 {
public static void main(String[] args) {
long nowNum = System.currentTimeMillis(); //获取当前时间戳(毫秒) System.out.println(nowNum); Date nowTime = new Date(); //获取当前时间 System.out.println(nowTime); System.out.println(nowTime.getTime());; //获取当前时间戳(毫秒) }}

2. 使用SimpleDateFormat格式化日期

import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;public class DateTest04 {
public static void main(String[] args) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String nowTime = sdf.format(new Date()); //获取当前时间格式化字符串 System.out.println(nowTime); try {
Date time = sdf.parse("2020-06-20 23:10:15"); //将时间字符串格式化为Date对象 System.out.println(time); } catch (ParseException e) {
e.printStackTrace(); } }}

3. 获取今天是本年度第几天

import java.text.SimpleDateFormat;import java.util.Date;public class DateTest05 {
public static void main(String[] args) {
SimpleDateFormat s1 = new SimpleDateFormat("D"); String daytime = s1.format(new Date()); System.out.println(daytime); }}

4. Calendar 日历类

Calendar 类是一个抽象类,为我们提供了关于日期计算的相关功能,比如:年、月、日、时、分、秒的展示和计算。

GregorianCalendar 是 Calendar 的一个具体子类,提供了世界上大多数国家/地区使用的标准日历系统。

菜鸟雷区注意月份的表示,一月是 0,二月是 1,以此类推,12 月是 11。 因为大多数人习惯于使用单词而不是使用数字来表示月份,这样程序也许更易读,父类 Calendar 使用常量来表示月份:JANUARY、FEBRUARY 等等。
import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;public class DateTest06 {
public static void main(String[] args) {
//获取日期 GregorianCalendar calendar = new GregorianCalendar(2021, 5,20,23,35,20); printCalendar(calendar); int year = calendar.get(Calendar.YEAR); System.out.println(year); int month = calendar.get(Calendar.MONTH); System.out.println(month); int day = calendar.get(Calendar.DAY_OF_MONTH); int day2 = calendar.get(Calendar.DATE); System.out.println(day); System.out.println(day2); int date = calendar.get(Calendar.DAY_OF_WEEK); //表示星期几:1-7,星期天是1 System.out.println(date); //设置日期 GregorianCalendar calendar2 = new GregorianCalendar(); calendar2.set(Calendar.YEAR, 2021); calendar2.set(Calendar.MONTH, Calendar.FEBRUARY); // 月份数:0-11 calendar2.set(Calendar.DATE, 3); calendar2.set(Calendar.HOUR_OF_DAY, 10); calendar2.set(Calendar.MINUTE, 20); calendar2.set(Calendar.SECOND, 23); printCalendar(calendar2); //日期计算 GregorianCalendar calendar3 = new GregorianCalendar(2021, 5,20,23,35,20); calendar3.add(Calendar.MONTH, -7); // 月份减 7 calendar3.add(Calendar.DATE, 7); // 增加 7 天 printCalendar(calendar3); // 日历对象和时间对象转化 GregorianCalendar calendar4 = new GregorianCalendar(); calendar4.setTime(new Date()); //获取当前日期 printCalendar(calendar4); } static void printCalendar(Calendar calendar) {
int year = calendar.get(Calendar.YEAR); int month = calendar.get(Calendar.MONTH) + 1; int day = calendar.get(Calendar.DAY_OF_MONTH); int date = calendar.get(Calendar.DAY_OF_WEEK) - 1; // 星期几 String week = "" + ((date == 0) ? "日" : date); int hour = calendar.get(Calendar.HOUR); int minute = calendar.get(Calendar.MINUTE); int second = calendar.get(Calendar.SECOND); System.out.printf("%d年%d月%d日,星期%s %d:%d:%d\n", year, month, day, week, hour, minute, second); }}

转载地址:http://uqpli.baihongyu.com/

你可能感兴趣的文章
【GoLang】Web工作方式
查看>>
Launch Sublime Text 3 from the command line
查看>>
【数据库之mysql】mysql的安装(一)
查看>>
【数据库之mysql】 mysql 入门教程(二)
查看>>
【HTML5/CSS/JS】A list of Font Awesome icons and their CSS content values(一)
查看>>
【HTML5/CSS/JS】<br>与<p>标签区别(二)
查看>>
【HTML5/CSS/JS】开发跨平台应用工具的选择(三)
查看>>
【心灵鸡汤】Give it five minutes不要让一个好主意随风而去
查看>>
【React Native】Invariant Violation: Application AwesomeProject has not been registered
查看>>
【ReactNative】真机上无法调试 could not connect to development server
查看>>
【XCode 4.6】常用快捷键 特别是格式化代码ctrl+i
查看>>
【iOS游戏开发】icon那点事 之 实际应用(二)
查看>>
【iOS游戏开发】icon那点事 之 图标设计(三)
查看>>
【IOS游戏开发】之测试发布(Distribution)
查看>>
【IOS游戏开发】之IPA破解原理
查看>>
【一天一道LeetCode】#45. Jump Game II
查看>>
【一天一道LeetCode】#46. Permutations
查看>>
【一天一道LeetCode】#47. Permutations II
查看>>
【一天一道LeetCode】#48. Rotate Image
查看>>
【一天一道LeetCode】#56. Merge Intervals
查看>>