Java에서 Date 날짜 및 시간 클래스를 사용하는 방법
java.util 패키지는 현재 날짜와 시간을 캡슐화하는 Date 클래스를 제공합니다. Date 클래스는 Date 객체를 인스턴스화하는 두 개의 생성자를 제공합니다.
첫 번째 생성자는 현재 날짜와 시간을 사용하여 객체 를 초기화합니다.
Date( )
두 번째 생성자는 1970년 1월 1일 이후의 밀리초인 매개변수를 받습니다.
Date(long millisec)
Date 객체가 생성된 후 다음 메소드를 호출할 수 있습니다.
Serial number | Method 설명 |
---|---|
1 | boolean after(Date date), 호출하는 Date 객체가 이 메서드는 날짜 이후에 true를 반환하고, 그렇지 않으면 false |
boolean before(Date date)를 반환합니다. 이 메서드를 호출하는 Date 객체가 지정된 날짜 이전에 true를 반환하면 그렇지 않으면 false | |
Object clone( )은 이 객체의 복사본을 반환합니다. | |
int CompareTo(Date date)는 지정된 날짜와 함께 이 메서드가 호출될 때 Date 객체를 비교합니다. 둘이 같으면 0이 반환됩니다. 호출 객체가 지정된 날짜 이전이면 음수가 반환됩니다. 호출 객체는 지정된 날짜 | |
int CompareTo(Object obj) 이후에 양수를 반환합니다. obj가 Date 유형인 경우 작업은 CompareTo(Date)와 동일합니다. 그렇지 않으면 ClassCastException | |
boolean equals(Object date)가 발생하고, 이 메소드를 호출하는 Date 객체가 지정된 날짜와 같을 때 true를 반환하고, 그렇지 않으면 false | |
long getTime()을 반환하고, 반환합니다. 1970년 1월 1일 00:00:00 GMT | |
int hashCode( ) 이후 이 Date 객체가 나타내는 밀리초 수는 이 객체의 해시 코드 값을 반환합니다. | |
void setTime( 오랜 시간), 1970년 1월 1일 00:00:00 GMT | |
String toString() 이후의 밀리초 수를 사용하여 시간과 날짜를 설정하고, 이 Date 객체를 다음 형식의 문자열로 변환합니다. mon dd hh:mm:ss zzz yyyy 여기서: dow는 요일(Sun, Mon, Tue, Wed, Thu, Fri, Sat)입니다. |
: import java.util.Date;
public class DateDemo {
public static void main(String[] args) {
// 初始化 Date 对象
Date date = new Date();
// 使用 toString() 函数显示日期时间
System.out.println(date.toString());
}
}
// 实例编译运行结果如下:
// Tue Apr 04 22:50:40 CST 2023
Java는 다음 세 가지 방법을 사용하여 두 날짜를 비교합니다.
- getTime() 메서드를 사용하여 두 날짜를 가져옵니다. (1970년부터 1월 1일에 경과된 밀리초 값)을 입력한 다음 두 값을 비교합니다.
- before(), after() 및 equals() 메서드를 사용하세요. 예를 들어, 12일이 18일보다 빠르면 new Date(99, 2, 12).before(new Date (99, 2, 18))는 true를 반환합니다.
- Comparable 인터페이스에 의해 정의된 CompareTo() 메서드를 사용하고 Date 클래스가 이 인터페이스를 구현합니다.
- SimpleDateFormat을 사용하여 날짜 형식 지정
. SimpleDateFormat을 사용하면 실행할 사용자 정의 날짜-시간 형식을 선택할 수 있습니다. 예: import java.util.*;
import java.text.*;
public class DateDemo {
public static void main(String[] args) {
Date dNow = new Date( );
SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd hh:mm:ss");
System.out.println("当前时间为: " + ft.format(dNow));
}
}
// 实例编译运行结果如下:
// 当前时间为: 2023-04-04 10:55:24
: 일부 형식은 대문자이고 일부 형식은 소문자입니다. 예를 들어 MM은 월, mm은 분, HH는 12시간 형식입니다. 날짜 및 시간의 형식 인코딩
시간 패턴 문자열은 시간 형식을 지정하는 데 사용됩니다. 이 모드에서는 모든 ASCII 문자가 다음과 같이 정의된 모드 문자로 유지됩니다.
설명 | 샘플 | ||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
纪 | |||||||||||||||||||||||||||||||||||||||||||
y | |||||||||||||||||||||||||||||||||||||||||||
2001 | M | ||||||||||||||||||||||||||||||||||||||||||
7월 또는 07 | d | ||||||||||||||||||||||||||||||||||||||||||
10 | h | ||||||||||||||||||||||||||||||||||||||||||
12 | H | ||||||||||||||||||||||||||||||||||||||||||
22 | m | ||||||||||||||||||||||||||||||||||||||||||
30 | s | ||||||||||||||||||||||||||||||||||||||||||
55 | ㅋㅋㅋ | F | |||||||||||||||||||||||||||||||||||||||||
2(7월 둘째 수요일) | w | ||||||||||||||||||||||||||||||||||||||||||
40 | W | ||||||||||||||||||||||||||||||||||||||||||
1 | a | ||||||||||||||||||||||||||||||||||||||||||
10 | z | ||||||||||||||||||||||||||||||||||||||||||
동부 표준시 | ' | ||||||||||||||||||||||||||||||||||||||||||
구분 기호 | " | ||||||||||||||||||||||||||||||||||||||||||
` | 使用printf格式化日期printf 方法可以很轻松地格式化时间和日期。使用两个字母格式,它以 %t 开头并且以下面表格中的一个字母结尾。
printf格式化日期实例: 格式化日期: import java.util.Date; public class DateFormatExample { public static void main(String[] args) { Date date = new Date(); System.out.printf("%tY-%tm-%td %tH:%tM:%tS %tZ", date, date, date, date, date, date, date); } } // 执行输出结果为: // 2023-04-05 09:59:23 CST 로그인 후 복사 使用转换符格式化日期: import java.util.Date; public class DateDemo { public static void main(String[] args) { // 初始化 Date 对象 Date date = new Date(); //c的使用 System.out.printf("全部日期和时间信息:%tc%n",date); //f的使用 System.out.printf("年-月-日格式:%tF%n",date); //d的使用 System.out.printf("月/日/年格式:%tD%n",date); //r的使用 System.out.printf("HH:MM:SS PM格式(12时制):%tr%n",date); //t的使用 System.out.printf("HH:MM:SS格式(24时制):%tT%n",date); //R的使用 System.out.printf("HH:MM格式(24时制):%tR",date); } } // 实例编译运行结果如下: // 全部日期和时间信息:星期三 四月 05 10:06:21 CST 2023 // 年-月-日格式:2023-04-05 // 月/日/年格式:04/05/23 // HH:MM:SS PM格式(12时制):10:06:21 上午 // HH:MM:SS格式(24时制):10:06:21 // HH:MM格式(24时制):10:06 로그인 후 복사 如果你需要重复提供日期,那么利用这种方式来格式化它的每一部分就有点复杂了。因此,可以利用一个格式化字符串指出要被格式化的参数的索引。索引必须紧跟在 % 后面,而且必须以 $ 结束。例如: import java.util.Date; public class DateDemo { public static void main(String[] args) { // 初始化 Date 对象 Date date = new Date(); // 使用toString()显示日期和时间 // %1$索引指向 "Due date:" // %2$索引指向 date System.out.printf("%1$s %2$tB %2$td, %2$tY", "Due date:", date); } } // 实例编译运行结果如下: // Due date: 四月 05, 2023 로그인 후 복사 或者,你可以使用 < 标志。它表明先前被格式化的参数要被再次使用。例如: import java.util.Date; public class DateDemo { public static void main(String[] args) { // 初始化 Date 对象 Date date = new Date(); // 显示格式化时间 System.out.printf("%s %tB %<te, %<tY", "Due date:", date); } } // 实例编译运行结果如下: // Due date: 四月 5, 2023 로그인 후 복사 定义日期格式的转换符可以使日期通过指定的转换符生成新字符串。这些日期转换符如下所示: import java.util.*; public class DateDemo { public static void main(String[] args) { Date date=new Date(); //b的使用,月份简称 String str=String.format(Locale.US,"英文月份简称:%tb",date); System.out.println(str); System.out.printf("本地月份简称:%tb%n",date); //B的使用,月份全称 str=String.format(Locale.US,"英文月份全称:%tB",date); System.out.println(str); System.out.printf("本地月份全称:%tB%n",date); //a的使用,星期简称 str=String.format(Locale.US,"英文星期的简称:%ta",date); System.out.println(str); //A的使用,星期全称 System.out.printf("本地星期的简称:%tA%n",date); //C的使用,年前两位 System.out.printf("年的前两位数字(不足两位前面补0):%tC%n",date); //y的使用,年后两位 System.out.printf("年的后两位数字(不足两位前面补0):%ty%n",date); //j的使用,一年的天数 System.out.printf("一年中的天数(即年的第几天):%tj%n",date); //m的使用,月份 System.out.printf("两位数字的月份(不足两位前面补0):%tm%n",date); //d的使用,日(二位,不够补零) System.out.printf("两位数字的日(不足两位前面补0):%td%n",date); //e的使用,日(一位不补零) System.out.printf("月份的日(前面不补0):%te",date); } } // 输出结果为: // 英文月份简称:Apr // 本地月份简称:四月 // 英文月份全称:April // 本地月份全称:四月 // 英文星期的简称:Wed // 本地星期的简称:星期三 // 年的前两位数字(不足两位前面补0):20 // 年的后两位数字(不足两位前面补0):23 // 一年中的天数(即年的第几天):095 // 两位数字的月份(不足两位前面补0):04 // 两位数字的日(不足两位前面补0):05 // 月份的日(前面不补0):5 로그인 후 복사 解析字符串为时间SimpleDateFormat 类有一些附加的方法,特别是parse(),它试图按照给定的SimpleDateFormat 对象的格式化存储来解析字符串。例如: import java.util.*; import java.text.*; public class DateDemo { public static void main(String[] args) { SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd"); String input = args.length == 0 ? "1818-11-11" : args[0]; System.out.print(input + " Parses as "); Date t; try { t = ft.parse(input); System.out.println(t); } catch (ParseException e) { System.out.println("Unparseable using " + ft); } } } // 实例编译运行结果如下: // 1818-11-11 Parses as Wed Nov 11 00:00:00 CST 1818 로그인 후 복사 休眠(sleep)sleep()使当前线程进入停滞状态(阻塞当前线程),让出CPU的使用、目的是不让当前线程独自霸占该进程所获的CPU资源,以留一定时间给其他线程执行的机会。你可以让程序休眠一毫秒的时间或者到您的计算机的寿命长的任意段时间。例如,下面的程序会休眠3秒: import java.util.*; public class SleepDemo { public static void main(String[] args) { try { System.out.println(new Date( ) + "\n"); Thread.sleep(1000*3); // 休眠3秒 System.out.println(new Date( ) + "\n"); } catch (Exception e) { System.out.println("Got an exception!"); } } } // 实例编译运行结果如下: // Thu Apr 06 11:18:56 CST 2023 // Thu Apr 06 11:18:59 CST 2023 로그인 후 복사 测量时间间隔(以毫秒为单位)的实例:\color{red}{测量时间间隔(以毫秒为单位)的实例 :}测量时间间隔(以毫秒为单位)的实例: import java.util.*; public class DiffDemo { public static void main(String[] args) { try { long start = System.currentTimeMillis( ); System.out.println(new Date( ) + "\n"); Thread.sleep(5*60*10); System.out.println(new Date( ) + "\n"); long end = System.currentTimeMillis( ); long diff = end - start; System.out.println("Difference is : " + diff); } catch (Exception e) { System.out.println("Got an exception!"); } } } // 实例编译运行结果如下: // Thu Apr 06 11:25:14 CST 2023 // Thu Apr 06 11:25:17 CST 2023 // Difference is : 3038 로그인 후 복사 Calendar类我们现在已经能够格式化并创建一个日期对象了,但是我们如何才能设置和获取日期数据的特定部分呢,比如说小时,日,或者分钟? 我们又如何在日期的这些部分加上或者减去值呢? 答案是使用Calendar 类。 Calendar类的功能要比Date类强大很多,但在实现方式上也比Date类要复杂一些。 Calendar类是一个抽象类,在实际使用时实现特定的子类的对象,创建对象的过程对程序员来说是透明的,只需要使用getInstance方法创建即可。例如创建一个代表系统当前日期的Calendar对象: Calendar c = Calendar.getInstance();//默认是当前日期 로그인 후 복사 或者创建一个指定日期的Calendar对象(注:Calendar 的月份是从 0 开始的): //创建一个代表2009年6月12日的Calendar对象 Calendar c1 = Calendar.getInstance(); c1.set(2009, 6 - 1, 12); 로그인 후 복사 Calendar类对象字段类型:Calendar类中用以下这些常量表示不同的意义,jdk内的很多类其实都是采用的这种思想:
Calendar类对象信息的设置 set设置: 调用 public final void set(int year,int month,int date) 方法。例如: Calendar c1 = Calendar.getInstance(); c1.set(2009, 6, 12);//把Calendar对象c1的年月日分别设这为:2009、6、12 로그인 후 복사 如果只设定某个字段,例如日期的值,则可以使用 public void set(int field,int value) 方法。例如,把 c1对象代表的日期设置为10号,其他的所有数值会被重新计算: Calendar c1 = Calendar.getInstance(); c1.set(Calendar.DATE,10); 로그인 후 복사 其他字段属性set的意义以此类推。 add设置: 把c1对象的日期加上10,也就是c1也就表示为10天后的日期,其它所有的数值会被重新计算: Calendar c1 = Calendar.getInstance(); c1.add(Calendar.DATE, 10); 로그인 후 복사 把c1对象的日期减去10,也就是c1也就表示为10天前的日期,其它所有的数值会被重新计算: Calendar c1 = Calendar.getInstance(); c1.add(Calendar.DATE, -10); 로그인 후 복사 其他字段属性的add的意义以此类推。 Calendar类对象信息的获得 Calendar c1 = Calendar.getInstance(); // 获得年份 int year = c1.get(Calendar.YEAR); // 获得月份 int month = c1.get(Calendar.MONTH) + 1; // 获得日期 int date = c1.get(Calendar.DATE); // 获得小时 int hour = c1.get(Calendar.HOUR_OF_DAY); // 获得分钟 int minute = c1.get(Calendar.MINUTE); // 获得秒 int second = c1.get(Calendar.SECOND); // 获得星期几(注意(这个与Date类是不同的):1代表星期日、2代表星期1、3代表星期二,以此类推) int day = c1.get(Calendar.DAY_OF_WEEK); 로그인 후 복사 GregorianCalendar类Calendar类实现了公历日历,GregorianCalendar是Calendar类的一个具体实现。Calendar 的getInstance()方法返回一个默认用当前的语言环境和时区初始化的GregorianCalendar对象。GregorianCalendar定义了两个字段:AD和BC。这是代表公历定义的两个时代。 下面列出GregorianCalendar对象的几个构造方法:
这里是GregorianCalendar 类提供的一些尝用的方法列表:
GregorianCalendar 使用实例: mport java.util.*; public class GregorianCalendarDemo { public static void main(String[] args) { String months[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; int year; // 初始化 Gregorian 日历 // 使用当前时间和日期 // 默认为本地时间和时区 GregorianCalendar gcalendar = new GregorianCalendar(); // 显示当前时间和日期的信息 System.out.print("Date: "); System.out.print(months[gcalendar.get(Calendar.MONTH)]); System.out.print(" " + gcalendar.get(Calendar.DATE) + " "); System.out.println(year = gcalendar.get(Calendar.YEAR)); System.out.print("Time: "); System.out.print(gcalendar.get(Calendar.HOUR) + ":"); System.out.print(gcalendar.get(Calendar.MINUTE) + ":"); System.out.println(gcalendar.get(Calendar.SECOND)); // 测试当前年份是否为闰年 if(gcalendar.isLeapYear(year)) { System.out.println("当前年份是闰年"); } else { System.out.println("当前年份不是闰年"); } } } // 实例编译运行结果如下: // Date: Apr 6 2023 // Time: 3:35:13 // 当前年份不是闰年 로그인 후 복사 方法实例:\color{red}{方法实例:}方法实例: 时间戳转换成时间: public class Test { public static void main(String args[]) { // 获取当前时间戳 Long timeStamp = System.currentTimeMillis(); // 时间格式 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // 时间戳转换成时间 String sd = sdf.format(new Date(Long.parseLong(String.valueOf(timeStamp)))); System.out.println("格式化结果:" + sd); SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy 年 MM 月 dd 日 HH 时 mm 分 ss 秒"); String sd2 = sdf2.format(new Date(Long.parseLong(String.valueOf(timeStamp)))); System.out.println("格式化结果:" + sd2); } } // 实例编译运行结果如下: // 格式化结果:2023-04-23 14:24:13 // 格式化结果:2023 年 04 月 23 日 14 时 24 分 13 秒 로그인 후 복사 위 내용은 Java에서 Date 날짜 및 시간 클래스를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요! 본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
![]() 핫 AI 도구![]() Undresser.AI Undress사실적인 누드 사진을 만들기 위한 AI 기반 앱 ![]() AI Clothes Remover사진에서 옷을 제거하는 온라인 AI 도구입니다. ![]() Undress AI Tool무료로 이미지를 벗다 ![]() Clothoff.ioAI 옷 제거제 ![]() Video Face Swap완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요! ![]() 인기 기사
어 ass 신 크리드 그림자 : 조개 수수께끼 솔루션
3 몇 주 전
By DDD
Windows 11 KB5054979의 새로운 기능 및 업데이트 문제를 해결하는 방법
2 몇 주 전
By DDD
Atomfall에서 크레인 제어 키 카드를 찾을 수 있습니다
3 몇 주 전
By DDD
<s> : 데드 레일 - 모든 도전을 완료하는 방법
4 몇 주 전
By DDD
Atomfall Guide : 항목 위치, 퀘스트 가이드 및 팁
1 몇 달 전
By DDD
![]() 뜨거운 도구![]() 메모장++7.3.1사용하기 쉬운 무료 코드 편집기 ![]() SublimeText3 중국어 버전중국어 버전, 사용하기 매우 쉽습니다. ![]() 스튜디오 13.0.1 보내기강력한 PHP 통합 개발 환경 ![]() 드림위버 CS6시각적 웹 개발 도구 ![]() SublimeText3 Mac 버전신 수준의 코드 편집 소프트웨어(SublimeText3) ![]() 뜨거운 주제
Gmail 이메일의 로그인 입구는 어디에 있나요?
![]() ![]()
Cakephp 튜토리얼
![]() ![]()
C# 튜토리얼
![]() ![]()
Steam의 계정 이름 형식은 무엇입니까?
![]() ![]()
Win11 활성화 키 영구
![]() ![]() ![]() Java의 Weka 가이드. 여기에서는 소개, weka java 사용 방법, 플랫폼 유형 및 장점을 예제와 함께 설명합니다. ![]() Java의 Smith Number 가이드. 여기서는 정의, Java에서 스미스 번호를 확인하는 방법에 대해 논의합니다. 코드 구현의 예. ![]() 이 기사에서는 가장 많이 묻는 Java Spring 면접 질문과 자세한 답변을 보관했습니다. 그래야 면접에 합격할 수 있습니다. ![]() Java 8은 스트림 API를 소개하여 데이터 컬렉션을 처리하는 강력하고 표현적인 방법을 제공합니다. 그러나 스트림을 사용할 때 일반적인 질문은 다음과 같은 것입니다. 기존 루프는 조기 중단 또는 반환을 허용하지만 스트림의 Foreach 메소드는이 방법을 직접 지원하지 않습니다. 이 기사는 이유를 설명하고 스트림 처리 시스템에서 조기 종료를 구현하기위한 대체 방법을 탐색합니다. 추가 읽기 : Java Stream API 개선 스트림 foreach를 이해하십시오 Foreach 메소드는 스트림의 각 요소에서 하나의 작업을 수행하는 터미널 작동입니다. 디자인 의도입니다 ![]() Java의 TimeStamp to Date 안내. 여기서는 소개와 예제와 함께 Java에서 타임스탬프를 날짜로 변환하는 방법에 대해서도 설명합니다. ![]() 캡슐은 3 차원 기하학적 그림이며, 양쪽 끝에 실린더와 반구로 구성됩니다. 캡슐의 부피는 실린더의 부피와 양쪽 끝에 반구의 부피를 첨가하여 계산할 수 있습니다. 이 튜토리얼은 다른 방법을 사용하여 Java에서 주어진 캡슐의 부피를 계산하는 방법에 대해 논의합니다. 캡슐 볼륨 공식 캡슐 볼륨에 대한 공식은 다음과 같습니다. 캡슐 부피 = 원통형 볼륨 2 반구 볼륨 안에, R : 반구의 반경. H : 실린더의 높이 (반구 제외). 예 1 입력하다 반경 = 5 단위 높이 = 10 단위 산출 볼륨 = 1570.8 입방 단위 설명하다 공식을 사용하여 볼륨 계산 : 부피 = π × r2 × h (4 ![]() Java는 초보자와 숙련된 개발자 모두가 배울 수 있는 인기 있는 프로그래밍 언어입니다. 이 튜토리얼은 기본 개념부터 시작하여 고급 주제를 통해 진행됩니다. Java Development Kit를 설치한 후 간단한 "Hello, World!" 프로그램을 작성하여 프로그래밍을 연습할 수 있습니다. 코드를 이해한 후 명령 프롬프트를 사용하여 프로그램을 컴파일하고 실행하면 "Hello, World!"가 콘솔에 출력됩니다. Java를 배우면 프로그래밍 여정이 시작되고, 숙달이 깊어짐에 따라 더 복잡한 애플리케이션을 만들 수 있습니다. ![]() |