Java에서 현재 날짜/시간을 가져오는 방법
Java에서 현재 날짜/시간을 얻는 가장 좋은 방법은 무엇입니까?
원하는 날짜/시간 형식에 따라 다릅니다.
의 수치로 는, 「/」를 해 주세요.
System.currentTimeMillis()
에폭(Java UNIX 「(Java UNIX」)의.long
). 이 값은 UTC 시점으로부터의 델타이며 로컬타임존과는1 무관합니다.구성 요소(년, 월 등)에 숫자로 액세스할 수 있는 형식으로 날짜/시간을 원하는 경우 다음 중 하나를 사용할 수 있습니다.
new Date()
gives gives gives gives gives givesDate
개체가 현재 날짜/시간으로 초기화되었습니다.는 '이러다'라는입니다.Date
API 메서드는 대부분 결함이 있으며 권장되지 않습니다.Calendar.getInstance()
gives gives gives gives gives givesCalendar
오브젝트. " " " "/ " " " " 를 합니다.Locale
★★★★★★★★★★★★★★★★★」TimeZone
.를할 수Locale
"/"/"TimeZone
캘린더는 가능하지만 API는 여전히 번거롭습니다.new org.joda.time.DateTime()
는 기본 시간대 및 시간대를 사용하여 현재 날짜/시간으로 초기화된 Joda-time 개체를 제공합니다.Joda의 다른 대안은 너무 많아서 여기에 기술할 수 없습니다.(그러나 Joda의 시간에는 성능 문제가 있다는 보고도 있습니다.); 예: https://stackoverflow.com/questions/6280829.)8의 Java 8의 호출,
java.time.LocalDateTime.now()
★★★★★★★★★★★★★★★★★」java.time.ZonedDateTime.now()
현재 날짜/시간을 나타냅니다2.
Java 8 이전까지는 Joda-time이 시점과 기간 계산을 포함한 작업을 수행하기 위한 최적의 Java API를 가지고 있다고 추천했습니다.
8 8의java.time
패키지를 권장합니다.Joda time은 이제 "구식"으로 간주되며 Joda 유지보수는 사람들에게 3이주할 것을 권고하고 있습니다.
1 -System.currentTimeMillis()
는 "시스템"에 시간을 줍니다.일반적으로 시스템 클럭은 (공칭) UTC로 설정되지만 로컬 UTC 클럭과 실제 UTC 클럭 사이에는 차이(델타)가 있습니다.델타 크기는 시스템 클럭이 UTC와 얼마나 잘 동기화되는지(및 얼마나 자주 동기화되는지)
2 - LocalDateTime에는 시간대가 포함되어 있지 않습니다.javadoc의 말처럼 "오프셋이나 시간대 등의 추가 정보가 없으면 타임라인상의 순간을 나타낼 수 없습니다."
- 8 으로 버그 및 수 없게 될 수 있습니다.3 - 의 : Java 8 odaodaodaodaJoda 코 3 3 。2020-02년 현재 Joda의 공식 "종료"는 발표되지 않았으며 Joda API는 사용되지 않음으로 표시되어 있지 않습니다.
(주의: Java 버전 <8에서만 사용 가능).Java 8+ 의 경우는, 다른 응답을 확인해 주세요).
타임스탬프를 YYY 형식으로 출력해야 하는 경우.MM.DD-HHMM.SS(매우 빈번한 경우)는 다음과 같습니다.
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime());
현재 날짜를 String으로 지정할 경우 다음을 수행합니다.
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date = new Date();
System.out.println(dateFormat.format(date));
또는
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Calendar cal = Calendar.getInstance();
System.out.println(dateFormat.format(cal.getTime()));
http://www.mkyong.com/java/java-how-to-get-current-date-time-date-and-calender/
LocalDateTime.now()
시간대 정보가 필요한 경우:
ZonedDateTime.now()
화려한 포맷의 문자열을 인쇄하고 싶은 경우:
System.out.println(ZonedDateTime.now().format(DateTimeFormatter.RFC_1123_DATE_TIME))
dr;dr
Instant.now() // Capture the current moment in UTC, with a resolution of nanoseconds. Returns a `Instant` object.
또는 …
ZonedDateTime.now( // Capture the current moment as seen in…
ZoneId.of( "America/Montreal" ) // … the wall-clock time used by the people of a particular region (a time zone).
) // Returns a `ZonedDateTime` object.
java.time
일부 Answers에서는 Java.time 클래스가 Java의 초기 버전과 함께 번들된 성가신 오래된 날짜 시간 클래스를 대체하는 최신 버전이라고 언급하고 있습니다.아래는 조금 더 자세한 정보입니다.
시간대
다른 답변은 시간대가 현재 날짜와 시간을 결정하는 데 얼마나 중요한지 설명하지 못했습니다.어느 순간이든 날짜와 시간은 지역에 따라 전 세계적으로 다릅니다.예를 들어, 자정 몇 분 후는 프랑스 파리에서는 새로운 날이지만, 몽트레알 퀘벡에서는 여전히 "어제"입니다.
Instant
비즈니스 로직과 데이터 스토리지/교환의 대부분은 UTC로 하는 것이 좋습니다.
해상도(나노초)를 UTC로 현재 모멘트를 가져오려면 class를 사용합니다.기존의 컴퓨터 하드웨어 클럭은 정확도가 제한되어 있기 때문에 현재 모멘트는 나노초가 아닌 밀리초 또는 마이크로초 단위로 캡처될 수 있습니다.
Instant instant = Instant.now();
ZonedDateTime
은 할 수 있어요.Instant
다른 시간대로 이동합니다.오브젝트를 적용하여를 가져옵니다.
ZoneId z = ZoneId.of( "America/Montreal" );
ZonedDateTime zdt = instant.atZone( z );
문제는 할 수 있습니다.Instant
물살을 쐬다ZonedDateTime
직접적으로.
ZonedDateTime zdt = ZonedDateTime.now( z );
항상 옵션의 타임존 인수를 전달합니다.생략하면 JVM의 현재 기본 시간대가 적용됩니다.기본값은 런타임 중에도 언제든지 변경될 수 있습니다.당신의 앱이 당신의 통제를 벗어난 외부 기능에 노출되지 않도록 하세요.항상 원하는/예상 시간대를 지정하십시오.
ZonedDateTime do_Not_Do_This = ZonedDateTime.now(); // BAD - Never rely implicitly on the current default time zone.
수 요.Instant
ZonedDateTime
.
Instant instant = zdt.toInstant();
" " " 를 합니다.Instant
★★★★★★★★★★★★★★★★★」ZonedDateTime
타임라인에서 실제 순간을 원할 때가 아니라그Local…
유형에는 의도적으로 시간대의 개념이 없기 때문에 가능한 순간에 대한 대략적인 생각만 나타냅니다.해야 .Local…
를 ZonedDateTime
[이데일리 = 박진영어로 하겠습니다
LocalDate
클래스는 시간대 및 시간대가 없는 날짜 전용 값을 나타냅니다.
ZoneId z = ZoneId.of( "America/Montreal" );
LocalDate today = LocalDate.now( z ); // Always pass a time zone.
줄들
하려면 , 「-」를 .toString
표준 ISO 8601 형식의 java.time 클래스에서 사용할 수 있습니다.
String output = myLocalDate.toString(); // 2016-09-23
또는 …
String output = zdt.toString(); // 2016-09-23T12:34:56.789+03:00[America/Montreal]
ZonedDateTime
는 표준 각 안에 이름을 합니다.class.
다른 형식의 경우 스택 오버플로에서 클래스의 많은 질문과 답변을 검색합니다.
LocalDateTime
RamanSB의 질문에 대한 코멘트와는 달리 현재 날짜에는 클래스를 사용하지 마십시오.
LocalDateTime
에는 의도적으로 시간대 또는 UTC로부터의 오프셋 정보가 없습니다.따라서 타임라인에서 특정 순간을 추적하는 경우에는 이 방법이 적절하지 않습니다.확실히 현재의 순간을 포착하기에는 적절하지 않다.
A LocalDateTime
와 같은 만, 알수." 1월 23일 " 23분은 다른 두 입니다.
"로컬"이라는 표현은 직관에 반합니다.이것은 하나의 특정 지역보다는 모든 지역을 의미합니다.예를 들어 올해 크리스마스는 12월 25일 자정부터 시작됩니다.2017-12-25T00:00:00
LocalDateTime
하지만 이것은 다른 시간대의 세계 여러 지점에서 자정을 의미한다.자정은 뉴질랜드의 키리바시에서 먼저 일어나고, 인도에서는 몇 시간 후에 일어나고, 프랑스에서는 크리스마스가 시작되기 전에 몇 시간이 더 지나도록 캐나다 어린이들이 그날을 기다리고 있다.이 크리스마스 시작 지점들은 각각 별개의 것으로 표현될 것이다.ZonedDateTime
시스템 외부에서
시스템 클럭을 신뢰할 수 없는 경우 Java: Get current Date and Time from Server(시스템 클럭이 아닌 현재 날짜 및 시간 가져오기) 및 My Answer를 참조하십시오.
java.time.Clock
현재의 대체 공급업체를 활용하려면 추상 클래스의 하위 클래스를 작성합니다.
할 수 있어요.Clock
다양한 java.time 메서드에 대한 인수로 구현합니다.예를 들어, 입니다.
Instant instant = Instant.now( yourClockGoesHere ) ;
「」의 .Clock
사용할 수 .Clock
자체: ,offset
,tick
그외 ,기기.
java.time 정보
java.time 프레임워크는 Java 8 이후에 포함되어 있습니다.이러한 클래스는 , 및 등 문제가 많은 오래된 레거시 날짜 시간 클래스를 대체합니다.
자세한 내용은 Oracle 자습서를 참조하십시오.또한 Stack Overflow를 검색하여 많은 예와 설명을 확인하십시오.사양은 JSR 310입니다.
현재 유지보수 모드에 있는 조다 타임 프로젝트는 java.time 클래스로의 이행을 권장합니다.
java.time 객체를 데이터베이스와 직접 교환할 수 있습니다.JDBC 4.2 이후에 준거한JDBC 드라이버를 사용합니다.스트링도 필요 없고java.sql.*
②.
java.time 클래스는 어디서 얻을 수 있습니까?
- 자바 SE 8, 자바 SE 9, 자바 SE 10, 자바 SE 11 및 이후 - 표준 Java API의 일부이며 번들 구현이 포함되어 있습니다.
- Java 9에는 몇 가지 사소한 기능과 수정 사항이 추가되어 있습니다.
- 자바 SE 6 및 자바 SE 7
- java.time 기능의 대부분은 ThreeTen 백포트의 Java 6 및7로 백포트됩니다.
- 안드로이드
- 최신 버전의 Android 번들 구현 java.time 클래스.
- 이전의 Android(<26)에서는 쓰리텐ABP 프로젝트가 ThreeTen-Backport(상기)를 채택하고 있습니다.'쓰리텐ABP 사용방법'을 참조하십시오.
쓰리텐 엑스트라 프로젝트는 java.time을 추가 클래스로 확장합니다.이 프로젝트는 향후 java.time에 추가될 수 있는 가능성을 입증하는 기반입니다.여기에는 , , , 등 유용한 클래스가 있습니다.
날짜 개체를 생성하기만 하면 됩니다...
import java.util.Date;
Date date = new Date();
// 2015/09/27 15:07:53
System.out.println( new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(Calendar.getInstance().getTime()) );
// 15:07:53
System.out.println( new SimpleDateFormat("HH:mm:ss").format(Calendar.getInstance().getTime()) );
// 09/28/2015
System.out.println(new SimpleDateFormat("MM/dd/yyyy").format(Calendar.getInstance().getTime()));
// 20150928_161823
System.out.println( new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime()) );
// Mon Sep 28 16:24:28 CEST 2015
System.out.println( Calendar.getInstance().getTime() );
// Mon Sep 28 16:24:51 CEST 2015
System.out.println( new Date(System.currentTimeMillis()) );
// Mon Sep 28
System.out.println( new Date().toString().substring(0, 10) );
// 2015-09-28
System.out.println( new java.sql.Date(System.currentTimeMillis()) );
// 14:32:26
Date d = new Date();
System.out.println( (d.getTime() / 1000 / 60 / 60) % 24 + ":" + (d.getTime() / 1000 / 60) % 60 + ":" + (d.getTime() / 1000) % 60 );
// 2015-09-28 17:12:35.584
System.out.println( new Timestamp(System.currentTimeMillis()) );
// Java 8
// 2015-09-28T16:16:23.308+02:00[Europe/Belgrade]
System.out.println( ZonedDateTime.now() );
// Mon, 28 Sep 2015 16:16:23 +0200
System.out.println( ZonedDateTime.now().format(DateTimeFormatter.RFC_1123_DATE_TIME) );
// 2015-09-28
System.out.println( LocalDate.now(ZoneId.of("Europe/Paris")) ); // rest zones id in ZoneId class
// 16
System.out.println( LocalTime.now().getHour() );
// 2015-09-28T16:16:23.315
System.out.println( LocalDateTime.now() );
용도:
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime());
System.out.println(timeStamp );
(작동하고 있습니다.)
방법은 여러 가지가 있습니다.
최신 개체를 만들고 인쇄하기만 하면 됩니다.
Date d = new Date(System.currentTimeMillis());
System.out.print(d);
java.util.Date date = new java.util.Date();
인스턴스화된 시간이 자동으로 채워집니다.
위의 솔루션과 유사합니다.하지만 나는 항상 이 코드 덩어리를 찾고 있다.
Date date=Calendar.getInstance().getTime();
System.out.println(date);
java.util의 경우.날짜, 새 날짜()를 생성하기만 하면 됩니다.
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date = new Date();
System.out.println(dateFormat.format(date)); //2016/11/16 12:08:43
java.util의 경우.캘린더, Calendar.getInstance()를 사용합니다.
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Calendar cal = Calendar.getInstance();
System.out.println(dateFormat.format(cal)); //2016/11/16 12:08:43
java.time의 경우.LocalDateTime, LocalDateTime.now()를 사용합니다.
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
LocalDateTime now = LocalDateTime.now();
System.out.println(dtf.format(now)); //2016/11/16 12:08:43
java.time의 경우.LocalDate, LocalDate.now()를 사용합니다.
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd");
LocalDate localDate = LocalDate.now();
System.out.println(dtf.format(localDate)); //2016/11/16
참고 자료: https://www.mkyong.com/java/java-how-to-get-current-date-time-date-and-calender/
첫 번째 java.util을 이해합니다.날짜 클래스
1.1 현재 날짜 입수 방법
import java.util.Date;
class Demostration{
public static void main(String[]args){
Date date = new Date(); // date object
System.out.println(date); // Try to print the date object
}
}
1.2 getTime() 메서드의 사용방법
import java.util.Date;
public class Main {
public static void main(String[]args){
Date date = new Date();
long timeInMilliSeconds = date.getTime();
System.out.println(timeInMilliSeconds);
}
}
이것에 의해, 1970년 1월 1일 00:00 GMT 이후의 시간 비교로 밀리초수가 반환됩니다.
1.3 SimpleDateFormat 클래스를 사용하여 시간을 포맷하는 방법
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
class Demostration{
public static void main(String[]args){
Date date=new Date();
DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");
String formattedDate=dateFormat.format(date);
System.out.println(formattedDate);
}
}
또한 "yyy-MM-d hh:mm:ss"와 같은 다른 형식 패턴을 사용하여 원하는 패턴을 선택하십시오.http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
두 번째 java.util을 이해합니다.캘린더 클래스
2.1 Calendar Class를 사용하여 현재 타임스탬프
import java.util.Calendar;
class Demostration{
public static void main(String[]args){
Calendar calendar=Calendar.getInstance();
System.out.println(calendar.getTime());
}
}
2.2 캘린더를 다른 날짜로 설정하기 위해 set Time 및 기타 set 메서드를 사용해 보십시오.
출처 : http://javau91.blogspot.com/
java.util.Date 보셨어요?그게 바로 네가 원하는 거야.
Java 8 이상
LocalDateTime.now() and ZonedDateTime.now()
이것이 최선의 방법이라고 생각합니다.
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Calendar cal = Calendar.getInstance();
System.out.println(dateFormat.format(cal.getTime())); // 2014/08/06 16:00:22
날짜 클래스를 살펴봅니다.또한 많은 날짜/시간 작업을 수행할 때 선호하는 방법인 새로운 달력 클래스도 있습니다(날짜의 많은 방법이 권장되지 않음).
날짜만 새 "날짜"로 하십시오.Calendar.getInstance();
.
이미 설명한 바와 같이 기본 Date()는 현재 시각을 취득하는 데 필요한 작업을 수행할 수 있습니다.최근 Java 날짜를 많이 사용한 경험으로는 빌트인 클래스에는 많은 이상한 점이 있습니다(게다가 Date 클래스 메서드의 많은 비호감도 있습니다).한 가지 특이한 점은 월이 0 지수를 기준으로 한다는 것입니다. 기술적 관점에서 보면 이치에 맞지만, 실제로는 매우 혼란스러울 수 있습니다.
현재 날짜에만 관심이 있다면, 그러나 날짜를 사용하여 많은 조작/계산을 할 예정이라면 서드파티 라이브러리를 사용하는 것이 매우 유리할 수 있습니다(많은 Java 개발자가 내장된 기능에 만족하지 못해 많은 라이브러리가 존재합니다).
Stephen C의 추천에 따르면 Joda-time은 날짜를 사용하여 작업을 간소화하는 데 매우 유용하며 문서화되어 있어 웹에서 많은 유용한 예를 찾을 수 있습니다.심지어 모든 공통 날짜 조작을 통합하고 단순화하기 위해 사용하는 정적 래퍼 클래스(DateUtils)도 작성하게 되었습니다.
용도:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy:MM:dd::HH:mm:ss");
System.out.println(sdf.format(System.currentTimeMillis()));
되고 호출된 .SimpleDateFormat
작성되었습니다.따라서 새 개체를 만들지 않고 반복적으로 호출할 수 있습니다.
System.out.println( new SimpleDateFormat("yyyy:MM:dd - hh:mm:ss a").format(Calendar.getInstance().getTime()) );
//2018:02:10 - 05:04:20 PM
AM/PM이 있는 날짜/시간
새로운 Data-Time API는 Java 8의 시작과 함께 도입되었습니다.이는 이전 데이터 시간 API에서 발생한 다음과 같은 문제로 인해 발생합니다.
시간대 처리 어려움 : 시간대를 처리하려면 코드를 많이 작성해야 합니다.
스레드 세이프 아님 : java.util.날짜가 스레드 세이프가 아닙니다.
Java 8을 사용하여 둘러보세요.
import java.time.LocalDate;
import java.time.LocalTime;
import java.time.LocalDateTime;
import java.time.Month;
public class DataTimeChecker {
public static void main(String args[]) {
DataTimeChecker dateTimeChecker = new DataTimeChecker();
dateTimeChecker.DateTime();
}
public void DateTime() {
// Get the current date and time
LocalDateTime currentTime = LocalDateTime.now();
System.out.println("Current DateTime: " + currentTime);
LocalDate date1 = currentTime.toLocalDate();
System.out.println("Date : " + date1);
Month month = currentTime.getMonth();
int day = currentTime.getDayOfMonth();
int seconds = currentTime.getSecond();
System.out.println("Month : " + month);
System.out.println("Day : " + day);
System.out.println("Seconds : " + seconds);
LocalDateTime date2 = currentTime.withDayOfMonth(17).withYear(2018);
System.out.println("Date : " + date2);
//Prints 17 May 2018
LocalDate date3 = LocalDate.of(2018, Month.MAY, 17);
System.out.println("Date : " + date3);
//Prints 04 hour 45 minutes
LocalTime date4 = LocalTime.of(4, 45);
System.out.println("Date : " + date4);
// Convert to a String
LocalTime date5 = LocalTime.parse("20:15:30");
System.out.println("Date : " + date5);
}
}
위의 부호화 출력:
Current DateTime: 2018-05-17T04:40:34.603
Date : 2018-05-17
Month : MAY
Day : 17
Seconds : 34
Date : 2018-05-17T04:40:34.603
Date : 2018-05-17
Date : 04:45
Date : 20:15:30
내가 이 방법을 만들었는데, 나한테는 효과가 있어...
public String GetDay() {
return String.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("dd")));
}
public String GetNameOfTheDay() {
return String.valueOf(LocalDateTime.now().getDayOfWeek());
}
public String GetMonth() {
return String.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("MM")));
}
public String GetNameOfTheMonth() {
return String.valueOf(LocalDateTime.now().getMonth());
}
public String GetYear() {
return String.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy")));
}
public boolean isLeapYear(long year) {
return Year.isLeap(year);
}
public String GetDate() {
return GetDay() + "/" + GetMonth() + "/" + GetYear();
}
public String Get12HHour() {
return String.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("hh")));
}
public String Get24HHour() {
return String.valueOf(LocalDateTime.now().getHour());
}
public String GetMinutes() {
return String.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("mm")));
}
public String GetSeconds() {
return String.valueOf(LocalDateTime.now().format(DateTimeFormatter.ofPattern("ss")));
}
public String Get24HTime() {
return Get24HHour() + ":" + GetMinutes();
}
public String Get24HFullTime() {
return Get24HHour() + ":" + GetMinutes() + ":" + GetSeconds();
}
public String Get12HTime() {
return Get12HHour() + ":" + GetMinutes();
}
public String Get12HFullTime() {
return Get12HHour() + ":" + GetMinutes() + ":" + GetSeconds();
}
import java.util.*;
import java.text.*;
public class DateDemo {
public static void main(String args[]) {
Date dNow = new Date( );
SimpleDateFormat ft =
new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz");
System.out.println("Current Date: " + ft.format(dNow));
}
}
할 수 .
SimpleDateFormat
을 취하다
Java 8을 사용한 현재 날짜: 먼저 java.time을 사용합니다.LocalDate: 현재 시스템 날짜를 가져옵니다.
LocalDate localDate = LocalDate.now();
다른 시간대 날짜를 얻으려면 LocalDate.now(ZoneId)를 사용합니다.
LocalDate localDate = LocalDate.now(ZoneId.of("GMT+02:30"));
java.time을 사용할 수도 있습니다.LocalDateTime을 사용하여 LocalDate 인스턴스를 가져옵니다.
LocalDateTime localDateTime = LocalDateTime.now();
LocalDate localDate = localDateTime.toLocalDate();
하시면 됩니다.Date
오브젝트 및 포맷을 직접 사용할 수 있습니다.를 들어 더 코드가 합니다.
Date dateInstance = new Date();
int year = dateInstance.getYear()+1900;//Returns:the year represented by this date, minus 1900.
int date = dateInstance.getDate();
int month = dateInstance.getMonth();
int day = dateInstance.getDay();
int hours = dateInstance.getHours();
int min = dateInstance.getMinutes();
int sec = dateInstance.getSeconds();
String dayOfWeek = "";
switch(day){
case 0:
dayOfWeek = "Sunday";
break;
case 1:
dayOfWeek = "Monday";
break;
case 2:
dayOfWeek = "Tuesday";
break;
case 3:
dayOfWeek = "Wednesday";
break;
case 4:
dayOfWeek = "Thursday";
break;
case 5:
dayOfWeek = "Friday";
break;
case 6:
dayOfWeek = "Saturday";
break;
}
System.out.println("Date: " + year +"-"+ month + "-" + date + " "+ dayOfWeek);
System.out.println("Time: " + hours +":"+ min + ":" + sec);
출력:
Date: 2017-6-23 Sunday
Time: 14:6:20
보시다시피 이 방법은 최악의 방법이며 Oracle 설명서에 따르면 권장되지 않습니다.
Oracle 문서:
클래스 날짜는 특정 순간을 밀리초의 정밀도로 나타냅니다.
JDK 1.1 이전의 클래스 Date에는 두 가지 추가 기능이 있었습니다.날짜를 년, 월, 일, 시간, 분 및 초 값으로 해석할 수 있습니다.또한 날짜 문자열의 형식 및 구문 분석도 허용했습니다.유감스럽게도 이러한 기능에 대한 API는 국제화에 준거할 수 없었습니다.JDK 1.1에서는 Calendar 클래스를 사용하여 날짜와 시간 필드를 변환하고 DateFormat 클래스를 사용하여 날짜 문자열을 포맷 및 해석해야 합니다.날짜의 해당 메서드는 더 이상 사용되지 않습니다.
다른 방법으로 수업을 사용할 수 있습니다.
Calendar.YEAR;
//and lot more
현재 시간을 얻으려면 다음을 사용합니다.
Calendar rightNow = Calendar.getInstance();
문서:
다른 클래스와 로 '로케일 의존 클래스'도 .
Calendar
메서드인 클래스 메서드를 .getInstance
이 유형의 일반적인 유용한 개체를 가져옵니다. ★★★★★★getInstance
는 a를 합니다.Calendar
가 현재 되어
날짜만 가져오기 위한 코드 아래
Date rightNow = Calendar.getInstance().getTime();
System.out.println(rightNow);
ㅇㅇㅇㅇ.Calendar
클래스에는 서브클래스가 있습니다.GregorianCalendar
그 중 하나이며 구체적인 서브클래스는Calendar
그리고 세계 대부분에서 사용되는 표준 달력 시스템을 제공합니다.
「 」를 GregorianCalendar
:
Calendar cal = new GregorianCalendar();
int hours = cal.get(Calendar.HOUR);
int minute = cal.get(Calendar.MINUTE);
int second = cal.get(Calendar.SECOND);
int ap = cal.get(Calendar.AM_PM);
String amVSpm;
if(ap == 0){
amVSpm = "AM";
}else{
amVSpm = "PM";
}
String timer = hours + "-" + minute + "-" + second + " " +amVSpm;
System.out.println(timer);
단순하고 빠른 방법으로 날짜를 포맷할 수 있습니다.
String pattern = "yyyy-MM-dd";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
String date = simpleDateFormat.format(new Date());
System.out.println(date);
Jakob Jenkov 튜토리얼 Java SimpleDateFormat을 읽어보십시오.
다른 사람들이 언급했듯이, 날짜에서 조작을 해야 할 때, 우리는 간단하고 최선의 방법이 없었거나 빌트인 클래스 API를 만족시킬 수 없었습니다.
예를 들어, 두 날짜 사이에 차이를 둘 필요가 있을 때, 두 날짜를 비교할 필요가 있을 때(이것도 내장된 방법이 있습니다) 등입니다.서드파티 도서관을 이용해야 했습니다.좋은 인기 있는 것 중 하나는 조다 타임입니다.
다음 내용도 읽어주세요.
가장 행복한 것은 (Java 8에서는) 어떤 이유로든 라이브러리를 다운로드하여 사용할 필요가 없다는 것입니다.Java 8에서 현재 날짜와 시간을 얻는 간단한 예.
LocalTime localTime = LocalTime.now();
System.out.println(localTime);
//with time zone
LocalTime localTimeWtZone = LocalTime.now(ZoneId.of("GMT+02:30"));
System.out.println(localTimeWtZone);
Java 8 날짜에 대해 읽어보기에 좋은 블로그 투고 중 하나입니다.
그리고 Java의 날짜와 시간에 대해 더 자세히 알아보려면 기억하십시오. 여러분이 얻고 사용할 수 있는 많은 방법 및/또는 유용한 방법이 있기 때문입니다.
편집:
@코멘트에 @BasilBourque @ such such such such such such such such such such such such such such such such such such such such such such such such such such such such @BasilBourque 。java.util.Date
,java.util.Calendar
, , , , 입니다.java.text.SimpleTextFormat
이제 계급으로 대체되는 유산이다.
다음 코드를 사용해 보십시오.
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class CurrentTimeDateCalendar {
public static void getCurrentTimeUsingDate() {
Date date = new Date();
String strDateFormat = "hh:mm:ss a";
DateFormat dateFormat = new SimpleDateFormat(strDateFormat);
String formattedDate= dateFormat.format(date);
System.out.println("Current time of the day using Date - 12 hour format: " + formattedDate);
}
public static void getCurrentTimeUsingCalendar() {
Calendar cal = Calendar.getInstance();
Date date=cal.getTime();
DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
String formattedDate=dateFormat.format(date);
System.out.println("Current time of the day using Calendar - 24 hour format: "+ formattedDate);
}
}
출력 예는 다음과 같습니다.
날짜 - 12시간 형식 현재 시각 : 11:13:01 PM
캘린더를 사용한 현재 시각 - 24시간 형식: 23:13:01
상세 정보:
같은 질문을 받았을 때 필요한 답변은 이것뿐이기 때문에 이 질문에 답해 보겠습니다.
Date currentDate = new Date(System.currentTimeMillis());
currentDate
날짜입니다.Date
★★★★★★ 。
언급URL : https://stackoverflow.com/questions/5175728/how-to-get-the-current-date-time-in-java
'programing' 카테고리의 다른 글
휴지 모드와 스프링 데이터 JPA의 차이점은 무엇입니까? (0) | 2022.07.13 |
---|---|
변수를 함수 맨 위에 선언하시겠습니까, 아니면 별도의 범위로 선언하시겠습니까? (0) | 2022.07.13 |
nuxt 프로젝트에 store/index.js 파일이 없습니다. (0) | 2022.07.13 |
일상적인 기계는 어떻게 프로그램됩니까? (0) | 2022.07.13 |
SSL 핸드쉐이크 경고: Java 1.7.0으로 업그레이드한 후 인식되지 않는_name 오류 (0) | 2022.07.13 |