web-dev-qa-db-ja.com

Androidで現在の日時を取得する

Androidアプリで現在の日時を取得する方法を教えてください。

960
M7M

あなたが使用することができます:

import Java.util.Calendar

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

Calendarにはあなたが必要とするものすべてのためのたくさんの定数があります。

編集:
カレンダークラスのドキュメントを確認してください

1136
user658042

あなたは(もうすべきではありません - 以下を参照してください!) Android.text.format.Time :を使うことができます。

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

上記のリンクから

Timeクラスは、Java.util.Calendarクラスおよび Java.util.GregorianCalendarクラスに代わるより高速な置換です。Timeクラスのインスタンスは、瞬間的に、を2番目の精度で指定します。


注1: この答えを書いてから数年が経ちました、それは古くてAndroidに特化した、現在は廃止予定のクラスです。 Google今 言う that "[t]彼のクラスには多くの問題があり、 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は繰り返し始めます。

480

特定のパターンで日時を取得したい場合は、次のようにします。

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_HHmmss");
String currentDateandTime = sdf.format(new Date());
310
Miciurash

カスタマイズしたフォーマットを好む人のために、

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
197
ANemati

実際には、デバイスに設定されている現在のタイムゾーンを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 classを参照してください。

_ update _

多くの人が指摘しているように、グーグルはこのクラスには多くの問題があり、もう使われることはないと言います。

このクラスにはいくつかの問題があり、代わりに GregorianCalendarを使用することをお勧めします。

既知の問題点:

時間計算を実行するときの歴史的な理由から、現在すべての算術演算は32ビット整数を使用して行われています。これは1902年から2037年までに表現可能な信頼できる時間範囲を制限します。詳細については、2038年問題に関するウィキペディアの記事を参照してください。この行動に頼らないでください。将来変更される可能性があります。 DSTの移行によりスキップされた壁時間など、存在できない日付に switchTimezone(String)を呼び出すと、1969年に日付になります(つまり、 -1、または1970年1月1日UTCの1秒前。 フォーマット/解析の多くはASCIIテキストを想定しているため、非ASCIIスクリプトでの使用には適していません。

124
kaneda

現在の日時には、次のように使用します。

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

どの出力:

Feb 27, 2012 5:41:23 PM
75
Kirit

この方法で試してください日付と時刻の形式を取得するために、すべての形式を以下に示します。

    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);

first

second third

52
Amitsharma

現時点では、Javaの標準であるSystem.currentTimeMillis()を使用できます。それからあなたはそれを使って日付を作成することができます

Date currentDate = new Date(System.currentTimeMillis());

そして時間を作成するために他の人が言ったように

Time currentTime = new Time();
currentTime.setToNow();
47
JosephL

あなたはコードを使用することができます:

Calendar c = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String strDate = sdf.format(c.getTime());

出力:

2014-11-11 00:47:55

SimpleDateFormatのフォーマットオプションも here から得られます。

35

tl; dr

Instant.now()  // Current moment in UTC.

…または…

ZonedDateTime.now( ZoneId.of( "America/Montreal" ) )  // In a particular time zone

詳細

他の回答は正しいですが、時代遅れです。古い日時クラスは、設計が不十分で、混乱を招き、厄介であることが証明されています。

Java.time

これらの古いクラスは Java.time フレームワークに取って代わりました。

これらの新しいクラスは、 JSR 31 によって定義され、 ThreeTen-Extra プロジェクトによって拡張された非常に成功した Joda-Time プロジェクトに触発されています。

Oracle Tutorial を参照してください。

Instant

Instant は、 ナノ秒 までの解像度を持つ UTC のタイムライン上の瞬間です。

 Instant instant = Instant.now(); // Current moment in UTC.

タイムゾーン

タイムゾーン( ZoneId )を適用して、 ZonedDateTime を取得します。タイムゾーンを省略すると、JVMの現在のデフォルトのタイムゾーンが暗黙的に適用されます。希望する/予想されるタイムゾーンを明示的に指定する方が適切です。

continent/regionAmerica/Montreal 、または Europe/Brussels などのAsia/Kolkataの形式の 適切なタイムゾーン名 を使用します。 ESTISTなどの3〜4文字の略語は、標準化も一意化もされていないため、絶対に使用しないでください。

ZoneId zoneId = ZoneId.of( "America/Montreal" ); // Or "Asia/Kolkata", "Europe/Paris", and so on.
ZonedDateTime zdt = ZonedDateTime.ofInstant( instant , zoneId );

文字列の生成

日時値のテキスト表現としてStringを簡単に生成できます。標準形式、独自のカスタム形式、または自動的にローカライズされた形式を使用できます。

ISO 8601

toStringメソッドを呼び出して、一般的で実用的な ISO 8601 標準を使用してフォーマットされたテキストを取得できます。

String output = instant.toString();

2016-03-23T03:09:01.613Z

ZonedDateTimeの場合、toStringメソッドは、角かっこでタイムゾーンの名前を追加することにより、ISO 8601標準を拡張することに注意してください。非常に有用で重要な情報ですが、標準ではありません。

2016-03-22T20:09:01.613-08:00 [アメリカ/ロスアンジェレス]

カスタムフォーマット

または、 DateTimeFormatter クラスを使用して独自の特定のフォーマットパターンを指定します。

DateTimeFormatter formatter = DateTimeFormatter.ofPattern( "dd/MM/yyyy hh:mm a" );

人間の言語(英語、 フランス語 など)の Locale を指定して、日/月の名前の翻訳、および年の順序などの文化的規範の定義に使用します。月と日付。 Localeはタイムゾーンとは関係がないことに注意してください。

formatter = formatter.withLocale( Locale.US ); // Or Locale.CANADA_FRENCH or such.
String output = zdt.format( formatter );

ローカライズ

さらに良いことに、Java.timeにローカライズの作業を自動的に行わせます。

DateTimeFormatter formatter = DateTimeFormatter.ofLocalizedDateTime( FormatStyle.MEDIUM );
String output = zdt.format( formatter.withLocale( Locale.US ) );  // Or Locale.CANADA_FRENCH and so on.

Java.timeについて

Java.time フレームワークは、Java 8以降に組み込まれています。これらのクラスは、 Java.util.DateCalendar 、& SimpleDateFormat などの厄介な古い legacy date-timeクラスに取って代わります。

Joda-Time プロジェクトは、現在 メンテナンスモード であり、 Java.time クラスへの移行を推奨しています。

詳細については、 Oracle Tutorial を参照してください。また、Stack Overflowで多くの例と説明を検索してください。指定は JSR 31 です。

Java.timeオブジェクトをデータベースと直接交換できます。 JDBC 4.2 以降に準拠する JDBCドライバー を使用します。文字列もJava.sql.*クラスも必要ありません。

Java.timeクラスはどこで入手できますか?

  • Java SE 8Java SE 9Java SE 1 以降、
    • ビルトイン。
    • 実装がバンドルされた標準Java AP​​Iの一部。
    • Java 9は、いくつかのマイナーな機能と修正を追加します。
  • Java SE 6 および Java SE 7
    • Java.time機能の多くは、 ThreeTen-Backport のJava 6および7にバックポートされています。
  • Android
    • Androidの後のバージョンは、Java.timeクラスの実装をバンドルします。
    • 以前のAndroid(<26)の場合、 ThreeTenABP プロジェクトはThreeTen-Backport(上記)に適合します。 ThreeTenABPの使用方法… を参照してください。

ThreeTen-Extra プロジェクトは、追加のクラスでJava.timeを拡張します。このプロジェクトは、Java.timeに将来追加される可能性のある証明の場です。 IntervalYearWeekYearQuarter 、および more などの便利なクラスがあります。

32
Basil Bourque

次のように簡単に、あなたは現在の時間のために別々の値を得るために時間を分析することができます:

Calendar cal = Calendar.getInstance(); 

  int millisecond = cal.get(Calendar.MILLISECOND);
  int second = cal.get(Calendar.SECOND);
  int minute = cal.get(Calendar.MINUTE);
        //12 hour format
  int hour = cal.get(Calendar.HOUR);
        //24 hour format
  int hourofday = cal.get(Calendar.HOUR_OF_DAY);

次のように、日付についても同じです。

Calendar cal = Calendar.getInstance(); 

  int dayofyear = cal.get(Calendar.DAY_OF_YEAR);
  int year = cal.get(Calendar.YEAR);
  int dayofweek = cal.get(Calendar.DAY_OF_WEEK);
  int dayofmonth = cal.get(Calendar.DAY_OF_MONTH);
31
SkateJerrySkate

Androidは主にJavaなのでいくつかの選択肢がありますが、textViewでそれを書きたい場合は、次のコードでうまくいきます。

String currentDateTimeString = DateFormat.getDateInstance().format(new Date());

// textView is the TextView view that should display it
textView.setText(currentDateTimeString);
24
eLobato
SimpleDateFormat databaseDateTimeFormate = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
SimpleDateFormat databaseDateFormate = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sdf1 = new SimpleDateFormat("dd.MM.yy");
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy.MM.dd G 'at' hh:mm:ss z");
SimpleDateFormat sdf3 = new SimpleDateFormat("EEE, MMM d, ''yy");
SimpleDateFormat sdf4 = new SimpleDateFormat("h:mm a");
SimpleDateFormat sdf5 = new SimpleDateFormat("h:mm");
SimpleDateFormat sdf6 = new SimpleDateFormat("H:mm:ss:SSS");
SimpleDateFormat sdf7 = new SimpleDateFormat("K:mm a,z");
SimpleDateFormat sdf8 = new SimpleDateFormat("yyyy.MMMMM.dd GGG hh:mm aaa");


String currentDateandTime = databaseDateTimeFormate.format(new Date());     //2009-06-30 08:29:36
String currentDateandTime = databaseDateFormate.format(new Date());     //2009-06-30
String currentDateandTime = sdf1.format(new Date());     //30.06.09
String currentDateandTime = sdf2.format(new Date());     //2009.06.30 AD at 08:29:36 PDT
String currentDateandTime = sdf3.format(new Date());     //Tue, Jun 30, '09
String currentDateandTime = sdf4.format(new Date());     //8:29 PM
String currentDateandTime = sdf5.format(new Date());     //8:29
String currentDateandTime = sdf6.format(new Date());     //8:28:36:249
String currentDateandTime = sdf7.format(new Date());     //8:29 AM,PDT
String currentDateandTime = sdf8.format(new Date());     //2009.June.30 AD 08:29 AM

日付フォーマットパターン

G   Era designator (before christ, after christ)
y   Year (e.g. 12 or 2012). Use either yy or yyyy.
M   Month in year. Number of M's determine length of format (e.g. MM, MMM or MMMMM)
d   Day in month. Number of d's determine length of format (e.g. d or dd)
h   Hour of day, 1-12 (AM / PM) (normally hh)
H   Hour of day, 0-23 (normally HH)
m   Minute in hour, 0-59 (normally mm)
s   Second in minute, 0-59 (normally ss)
S   Millisecond in second, 0-999 (normally SSS)
E   Day in week (e.g Monday, Tuesday etc.)
D   Day in year (1-366)
F   Day of week in month (e.g. 1st Thursday of December)
w   Week in year (1-53)
W   Week in month (0-5)
a   AM / PM marker
k   Hour in day (1-24, unlike HH's 0-23)
K   Hour in day, AM / PM (0-11)
z   Time Zone
22
Vignesh KM
final Calendar c = Calendar.getInstance();
    int mYear = c.get(Calendar.YEAR);
    int mMonth = c.get(Calendar.MONTH);
    int mDay = c.get(Calendar.DAY_OF_MONTH);

textView.setText(""+mDay+"-"+mMonth+"-"+mYear);
16
Alex Muriithi

これは日付と時刻を取得するのに便利な方法です。

private String getDate(){
    DateFormat dfDate = new SimpleDateFormat("yyyy/MM/dd");
    String date=dfDate.format(Calendar.getInstance().getTime());
    DateFormat dfTime = new SimpleDateFormat("HH:mm");
    String time = dfTime.format(Calendar.getInstance().getTime());
    return date + " " + time;
}

このメソッドを呼び出して現在の日付と時刻の値を取得することができます。

2017/01//09 19:23
13
Elenasys
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
    Calendar cal = Calendar.getInstance();
    System.out.println("time => " + dateFormat.format(cal.getTime()));

    String time_str = dateFormat.format(cal.getTime());

    String[] s = time_str.split(" ");

    for (int i = 0; i < s.length; i++) {
         System.out.println("date  => " + s[i]);
    }

    int year_sys = Integer.parseInt(s[0].split("/")[0]);
    int month_sys = Integer.parseInt(s[0].split("/")[1]);
    int day_sys = Integer.parseInt(s[0].split("/")[2]);

    int hour_sys = Integer.parseInt(s[1].split(":")[0]);
    int min_sys = Integer.parseInt(s[1].split(":")[1]);

    System.out.println("year_sys  => " + year_sys);
    System.out.println("month_sys  => " + month_sys);
    System.out.println("day_sys  => " + day_sys);

    System.out.println("hour_sys  => " + hour_sys);
    System.out.println("min_sys  => " + min_sys);
12
duggu
Time time = new Time();
time.setToNow();
System.out.println("time: " + time.hour+":"+time.minute);

これは、例えば12:32のようになります。

Android.text.format.Timeをインポートすることを忘れないでください。

12
Sam Haque

Android.os.SystemClockを使用することもできます。たとえば、SystemClock.elapsedRealtime()を使用すると、電話がスリープ状態になっているときの時間をより正確に測定できます。

11
Quadroid

カスタマイズされた日時フォーマットの場合 

    SimpleDateFormat dateFormat= new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZZZZZ",Locale.ENGLISH);
    String cDateTime=dateFormat.format(new Date());

出力は以下の形式のようになります。 2015-06-18T10:15:56-05:00

9

現在の日付が必要な場合

Calendar cc = Calendar.getInstance();
int year=cc.get(Calendar.YEAR);
int month=cc.get(Calendar.MONTH);
int mDay = cc.get(Calendar.DAY_OF_MONTH);
System.out.println("Date", year+":"+month+":"+mDay);

現在時刻が必要な場合

 int mHour = cc.get(Calendar.HOUR_OF_DAY);
 int mMinute = cc.get(Calendar.MINUTE);
 System.out.println("time_format"+String.format("%02d:%02d", mHour , mMinute ));
9
Time now = new Time();
now.setToNow();

これも私のために試してみてください。

8
TheMan
Date todayDate = new Date();
todayDate.getDay();
todayDate.getHours();
todayDate.getMinutes();
todayDate.getMonth();
todayDate.getTime();
8

あなたは日付を取得することができます:

Time t = new Time(Time.getCurrentTimezone());
t.setToNow();
String date = t.format("%Y/%m/%d");

この例のように、これによりNice形式の結果が得られます。

8
Annabelle

現在の日付と時刻の形式については、使用

Javaの場合

Calendar c = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String strDate = sdf.format(c.getTime());
Log.d("Date","DATE : " + strDate)

コトリン

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
    val current = LocalDateTime.now()
    val formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy. HH:mm:ss")
    var myDate: String =  current.format(formatter)
    Log.d("Date","DATE : " + myDate)
} else {
    var date = Date()
    val formatter = SimpleDateFormat("MMM dd yyyy HH:mma")
    val myDate: String = formatter.format(date)
    Log.d("Date","DATE : " + myDate)
}

日付フォーマッターパターン

"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
7
Vipul Prajapati

あなたは単に次のコードを使うことができます:

 DateFormat df = new SimpleDateFormat("HH:mm"); //format time
 String time = df.format(Calendar.getInstance().getTime());

 DateFormat df1=new SimpleDateFormat("yyyy/MM/dd");//foramt date
 String date=df1.format(Calendar.getInstance().getTime());
7
Ali Ziaee

さて、私はこのコードを融合しているので、APIによるいくつかの答えに問題がありました。

    Time t = new Time(Time.getCurrentTimezone());
    t.setToNow();
    String date1 = t.format("%Y/%m/%d");

    Date date = new Date(System.currentTimeMillis());
    SimpleDateFormat dateFormat = new SimpleDateFormat("hh:mm aa",
            Locale.ENGLISH);
    String var = dateFormat.format(date);
    String horafecha = var+ " - " + date1;

    tvTime.setText(horafecha);

出力: 03:25 PM - 2017/10/03

5
Charlie

以下のメソッドは現在の日付と時刻を文字列で返します。実際のタイムゾーンに従って異なるタイムゾーンを使用します。

public static String GetToday(){
    Date presentTime_Date = Calendar.getInstance().getTime();
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    dateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
    return dateFormat.format(presentTime_Date);
}
4
Danger

新しいAPIに従ってCalenderクラスを使用する必要があります。日付クラスは廃止されました。

Calendar cal = Calendar.getInstance();

String date = ""+cal.get(Calendar.DATE)+"-"+(cal.get(Calendar.MONTH)+1)+"-"+cal.get(Calendar.YEAR);

String time = ""+cal.get(Calendar.HOUR_OF_DAY)+":"+cal.get(Calendar.MINUTE);
4
Akshay Paliwal

これを試して

String mytime = (DateFormat.format("dd-MM-yyyy hh:mm:ss", new Java.util.Date()).toString());
4
Abhinaw Kumar

現在の日時を表示するこのコードを試してください

 Date date = new Date(System.currentTimeMillis());
 SimpleDateFormat dateFormat = new SimpleDateFormat("hh:mm aa",
                         Locale.ENGLISH);
 String var = dateFormat.format(date));
3
Kinjal

これは時間と日付を得るためのいくつかの方法です

public static void getCurrentTimeUsingDate() {
    Date date = new Date();
    String strDateFormat = "hh:mm:ss a";
    DateFormat dateFormat = new SimpleDateFormat(strDateFormat);
    String formattedDate= dateFormat.format(date);       
    Toast.makeText(this, formattedDate, Toast.LENGTH_SHORT).show();
}

カレンダーの使用時間

public static void getCurrentTimeUsingCalendar() {
        Calendar cal = Calendar.getInstance();
        Date date=cal.getTime();
        DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
        String formattedDate=dateFormat.format(date);
        Toast.makeText(this, formattedDate, Toast.LENGTH_SHORT).show();
}

現地時間と日付

public static void getCurrentTime(){
     System.out.println("-----Current time of your time zone-----");
     LocalTime time = LocalTime.now();
    Toast.makeText(this, time, Toast.LENGTH_SHORT).show();
 }

ゾーンワイズタイム

public static void getCurrentTimeWithTimeZone(){
Toast.makeText(this, "Current time of a different time zone using LocalTime", Toast.LENGTH_SHORT).show();

    ZoneId zoneId = ZoneId.of("America/Los_Angeles");
    LocalTime localTime=LocalTime.now(zoneId);
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");
    String formattedTime=localTime.format(formatter);

Toast.makeText(これ、formatTime、Toast.LENGTH_SHORT).show();

}

現在の日時を取得する簡単な方法  

import Java.util.Calendar

Date currentTime = Calendar.getInstance().getTime();
1
Pradeep Sheoran

時刻と日付は、カレンダーから個別に取得できます。

// You can pass time zone and Local to getInstance() as parameter

Calendar calendar = Calendar.getInstance(); 

int currentHour = calendar.get(Calendar.HOUR_OF_DAY);
int currentMinute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);
int date = calendar.get(Calendar.DAY_OF_MONTH);
int month = calendar.get(Calendar.MONTH);
int year = calendar.get(Calendar.YEAR);
1
Hasib Akter

以下のコードを使ってみてください。

 Date date = new Date();
 SimpleDateFormat dateFormatWithZone = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'",Locale.getDefault());  
 String currentDate = dateFormatWithZone.format(date);
1
Manikandan K

Com.google.gson.internal.bind.utilパッケージにISO8601Utils utilsクラスがあるので、アプリでGSONを使用する場合はこれを使用できます。 

ミリとタイムゾーンをサポートしているので、箱から出してすぐに使えます。

0
FilipMarusca

この関数からGMT時間で現地時間を取得できます

public String getCurrentDate() {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy MMM dd hh:mm a zzz");
    Date date = new Date();
    sdf.setTimeZone(TimeZone.getTimeZone("GMT+6:00"));
    return sdf.format(date);
}
0
pavel
    long totalSeconds = currentTimeMillis / 1000;
    int currentSecond = (int)totalSeconds % 60;

    long totalMinutes = totalSeconds / 60;
    int currentMinute = (int)totalMinutes % 60;

    long totalHours = totalMinutes / 60;
    int currentHour = (int)totalHours % 12;

    TextView tvTime = findViewById(R.id.tvTime);
    tvTime.setText((currentHour + OR - TIME YOU ARE FROM GMT) + ":" + currentMinute + ":" + currentSecond);
0
Bryan Ibrahim

コトリン

これがkotlinで現在の日付時刻を取得するためのさまざまな方法です。

fun main(args: Array<String>) {
    println(System.currentTimeMillis()) // current millisecond

    val date = Calendar.getInstance().time // current date object
    val date1 = Date(System.currentTimeMillis())

    println(date.toString())
    println(date1.toString())

    val now = Time(System.currentTimeMillis()) // current time object
    println(now.toString())

    val sdf = SimpleDateFormat("yyyy:MM:dd h:mm a", Locale.getDefault())
    println(sdf.format(Date())) // format current date

    println(DateFormat.getDateTimeInstance().format(System.currentTimeMillis())) // using getDateTimeInstance()

    println(LocalDateTime.now().toString()) // Java 8

    println(ZonedDateTime.now().toString()) // Java 8
}
0
Khemraj
String DataString=DateFormat.getDateInstance(DateFormat.SHORT).format(Calendar.getInstance().getTime());

短形式の書式付き文字列をユニットのローカライズされた形式で取得します。 

OS/Javaが日付と時刻の正しい地域化を提供しているのに、なぜそんなに多くの回答がハードコードされた日付と時刻の形式であるのか理解できません。プログラマよりもユニットのフォーマットを使うほうがいいのではないでしょうか。 

それはまたローカライズされたフォーマットで日付の読みを供給します:

    DateFormat format = DateFormat.getDateInstance(DateFormat.SHORT);
    Date date=null;
    try {
        date = format.parse(DateString);
    }
    catch(ParseException e) {
    }

それからそれはあなたに日付と時刻を示すためにフォーマットを設定するユーザー次第です、そして、あなた?言語に関係なく、同じ言語を持つ国によってフォーマットは異なります。 

0
Jan Bergström