안드로이드에서 현재 시간과 날짜를 얻는 방법 시간과 날짜를 어떻게 알 수

Android 앱에서 현재 시간과 날짜를 어떻게 알 수 있습니까?



답변

당신은 사용할 수 있습니다 :

import java.util.Calendar

Date currentTime = Calendar.getInstance().getTime();

Calendar에는 필요한 모든 상수가 많이 있습니다.

편집 : 캘린더 클래스 설명서
확인


답변

당신은 할 수 있습니다 ( 하지만 더 이상합니다 – 아래 참조하지 않습니다!)를 사용 android.text.format.Time를 :

Time now = new Time();
now.setToNow();

위의 참조에서 :

Time 클래스는 java.util.Calendar 및 java.util.GregorianCalendar 클래스를 더 빠르게 대체합니다. Time 클래스의 인스턴스는 두 번째 정밀도로 지정된 순간을 나타냅니다.


참고 1 :
이 답변을 작성한 지 몇 년이 지났으며 오래되고 Android 전용이며 더 이상 사용되지 않는 클래스에 관한 것입니다. 구글 “이 클래스에는 많은 문제가 있으며 대신 GregorianCalendar 를 사용하는 것이 좋습니다 “라고 말합니다.


참고 2 :Time 클래스에는 toMillis(ignoreDaylightSavings)메서드 가 있지만 시간 (밀리 초)이 걸리는 메서드에 전달하는 것이 편리합니다. 시간 값은 1 초까지만 정확합니다 . 밀리 초 부분은 항상 000입니다. 루프에 있다면

Time time = new Time();   time.setToNow();
Log.d("TIME TEST", Long.toString(time.toMillis(false)));
... do something that takes more than one millisecond, but less than one second ...

결과 시퀀스는 1410543204000다음 초가 시작될 때까지 같은 값을 반복하며 , 이때 1410543205000반복이 시작됩니다.


답변

특정 패턴으로 날짜와 시간을 얻으려면 다음을 사용할 수 있습니다.

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault());
String currentDateandTime = sdf.format(new Date());

또는,

날짜 :

String currentDate = new SimpleDateFormat("dd-MM-yyyy", Locale.getDefault()).format(new Date());

시각:

String currentTime = new SimpleDateFormat("HH:mm:ss", Locale.getDefault()).format(new Date());


답변

사용자 정의 형식을 선호하는 사람들은 다음을 사용할 수 있습니다.

DateFormat df = new SimpleDateFormat("EEE, d MMM yyyy, HH:mm");
String date = df.format(Calendar.getInstance().getTime());

다음과 같은 DateFormat 패턴을 가질 수 있습니다.

"yyyy.MM.dd G 'at' HH:mm:ss z" ---- 2001.07.04 AD at 12:08:56 PDT
"hh 'o''clock' a, zzzz" ----------- 12 o'clock PM, Pacific Daylight Time
"EEE, d MMM yyyy HH:mm:ss Z"------- Wed, 4 Jul 2001 12:08:56 -0700
"yyyy-MM-dd'T'HH:mm:ss.SSSZ"------- 2001-07-04T12:08:56.235-0700
"yyMMddHHmmssZ"-------------------- 010704120856-0700
"K:mm a, z" ----------------------- 0:08 PM, PDT
"h:mm a" -------------------------- 12:08 PM
"EEE, MMM d, ''yy" ---------------- Wed, Jul 4, '01


답변

실제로 기기에서 설정된 현재 시간대를로 설정하는 것이 더 안전합니다. Time.getCurrentTimezone()그렇지 않으면 UTC로 현재 시간을 얻습니다.

Time today = new Time(Time.getCurrentTimezone());
today.setToNow();

그런 다음 원하는 날짜 필드를 모두 얻을 수 있습니다. 예를 들면 다음과 같습니다.

textViewDay.setText(today.monthDay + "");             // Day of the month (1-31)
textViewMonth.setText(today.month + "");              // Month (0-11)
textViewYear.setText(today.year + "");                // Year 
textViewTime.setText(today.format("%k:%M:%S"));  // Current time

자세한 내용은 android.text.format.Time 클래스를 참조 하십시오.

최신 정보

많은 사람들이 지적한 것처럼 구글은이 클래스에 여러 가지 문제가 있으며 더 이상 사용해서는 안된다고 말합니다.

이 클래스에는 여러 가지 문제가 있으므로 GregorianCalendar를 대신 사용하는 것이 좋습니다.

알려진 문제 :

역사적으로 시간 계산을 수행 할 때 모든 산술은 현재 32 비트 정수를 사용하여 수행됩니다. 이로 인해 1902에서 2037까지의 신뢰할 수있는 시간 범위가 제한됩니다. 자세한 내용은 2038 년 문제에 대한 Wikipedia 기사를 참조하십시오. 이 동작에 의존하지 마십시오. 앞으로 변경 될 수 있습니다. 존재하지 않는 날짜 (예 : DST 전환으로 인해 건너 뛴 월 시간)에서 switchTimezone (String)을 호출하면 1969 년의 날짜 (예 : -1 또는 1970 년 1 월 1 일 1 초 전 1 초)가됩니다. 많은 형식화 / 구문 분석은 ASCII 텍스트를 가정하므로 ASCII가 아닌 스크립트에는 사용하기에 적합하지 않습니다.


답변

현재 날짜와 시간으로 다음을 사용하십시오.

String mydate = java.text.DateFormat.getDateTimeInstance().format(Calendar.getInstance().getTime());

어떤 출력 :

Feb 27, 2012 5:41:23 PM


답변

이 방법으로 시도하십시오 날짜 및 시간 형식을 얻으려면 아래에 모든 형식이 제공됩니다.

    Calendar c = Calendar.getInstance();
    SimpleDateFormat dateformat = new SimpleDateFormat("dd-MMM-yyyy hh:mm:ss aa");
    String datetime = dateformat.format(c.getTime());
    System.out.println(datetime);

먼저

둘째
제삼