Получить текущее время и дату на Android

Как узнать текущее время и дату в приложении для Android?

вопрос задан 20.03.2011
M7M
4556 репутация

36 ответов


  • 1087 рейтинг

    Вы можете использовать:

    import java.util.Calendar
    
    Date currentTime = Calendar.getInstance().getTime();
    

    В календаре достаточно констант для всего, что вам нужно.

    Редактировать:
    Проверка Календарная документация класса

    ответ дан does_not_exist, с репутацией , 20.03.2011
  • 476 рейтинг

    Вы можете (, но больше не следует - см. Ниже! ) использовать Android. текст. формат. Время :

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

    Из ссылки, указанной выше:

    Класс Time - более быстрая замена для Java. Util. Календарь и Джава. Util. GregorianCalendar классы. Экземпляр класса Time представляет момент времени, указанный со второй точностью.


    ПРИМЕЧАНИЕ 1: Прошло несколько лет с тех пор, как я написал этот ответ, и речь идет о старом, специфичном для Android и теперь устаревшем классе. Google сейчас говорит, что msgstr "[t] у его класса есть ряд проблем, и вместо него рекомендуется использовать GregorianCalendar ".


    ПРИМЕЧАНИЕ 2: Несмотря на то, что класс Time имеет метод toMillis(ignoreDaylightSavings), это просто удобство для перехода к методам, которые ожидают время в миллисекундах. Значение времени с точностью до одной секунды ; доля в миллисекундах всегда равна 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 начнет повторяться.

    ответ дан Thomas Padron-McCarthy, с репутацией 22446, 20.03.2011
  • 292 рейтинг

    Если вы хотите получить дату и время в определенном шаблоне, вы можете использовать следующее:

    SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_HHmmss");
    String currentDateandTime = sdf.format(new Date());
    
    ответ дан Miciurash, с репутацией 3161, 18.01.2012
  • 191 рейтинг

    Для тех, кто предпочитает индивидуальный формат, вы можете использовать:

    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
    
    ответ дан ANemati, с репутацией 3723, 18.12.2013
  • 121 рейтинг

    На самом деле безопаснее установить текущий часовой пояс, установленный на устройстве с 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. текст. формат. Время класс для всех деталей.

    ОБНОВЛЕНИЕ

    Как отмечают многие, Google говорит, что у этого класса есть ряд проблем, и он больше не должен использоваться:

    Этот класс имеет ряд проблем, и рекомендуется Вместо этого используется GregorianCalendar.

    Известные проблемы:

    По историческим причинам при выполнении расчетов времени все арифметика в настоящее время выполняется с использованием 32-разрядных целых чисел. Это ограничивает надежный временной диапазон, представленный с 1902 до 2037 года. Увидеть статья в Википедии о проблеме 2038 года для деталей. Не полагайтесь на это поведение; это может измениться в будущем. призвание switchTimezone (String) на дату, которая не может существовать, например на стене время, которое было пропущено из-за перехода на летнее время, приведет к дате в 1969 году (т.е. е. -1 или за 1 секунду до 1 января 1970 года по Гринвичу). Многое из форматирование / синтаксический анализ предполагает использование текста ASCII и поэтому не подходит для использования со сценариями не ASCII.

    ответ дан kaneda, с репутацией 3202, 11.02.2012
  • 73 рейтинг

    Для текущей даты и времени используйте:

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

    Какие выходы:

    Feb 27, 2012 5:41:23 PM
    
    ответ дан Kirit, с репутацией 731, 27.02.2012
  • 48 рейтинг

    Попробуйте с помощью этого способа Все форматы приведены ниже, чтобы получить формат даты и времени.

        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

    ответ дан Amitsharma, с репутацией 1208, 17.12.2015
  • 45 рейтинг

    Для получения текущего времени вы можете использовать System.currentTimeMillis(), который является стандартным в Java. Тогда вы можете использовать его для создания даты

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

    И как уже упоминалось, чтобы создать время

    Time currentTime = new Time();
    currentTime.setToNow();
    
    ответ дан JosephL, с репутацией 5639, 25.10.2011
  • 35 рейтинг

    Вы можете использовать код:

    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 из здесь .

    ответ дан Himanshu Aggarwal, с репутацией 1031, 10.11.2014
  • 30 рейтинг

    Легко, вы можете разделить время, чтобы получить отдельные значения для текущего времени, следующим образом:

    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);
    
    ответ дан SkateJerrySkate, с репутацией 328, 13.11.2012
  • 28 рейтинг

    тл; д-р

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

    … или…

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

    Подробности

    Остальные ответы, хотя и правильные, устарели. Старые классы даты и времени оказались плохо продуманными, запутанными и хлопотными.

    Java. время

    Те старые классы были вытеснены Java. время рамки.

    Эти новые классы основаны на очень успешном проекте Joda-Time , определенном в JSR 310 и расширенном в рамках проекта ThreeTen-Extra .

    См. Руководство по Oracle .

    Instant

    Instant является моментом на временной шкале в UTC с разрешением до наносекунд .

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

    Часовой пояс

    Примените часовой пояс ( ZoneId ), чтобы получить ZonedDateTime . Если вы опустите часовой пояс, текущий часовой пояс вашего JVM будет применен неявно. Лучше явно указать желаемый / ожидаемый часовой пояс.

    Используйте собственных имен часовых поясов в формате continent/region, таких как America/Montreal , Europe/Brussels или Asia/Kolkata . Никогда не используйте 3-4-буквенные сокращения, такие как EST или IST, так как они не являются ни стандартизированными, ни уникальными.

    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. время делать локализацию автоматически.

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

    О Java. время

    Ява . время Framework встроен в Java 8 и более поздние версии. Эти классы вытесняют проблемные старые классы 385248709 старых версий , такие как java.util.Date , Calendar и amp; SimpleDateFormat .

    Проект Joda-Time , находящийся сейчас в режиме обслуживания , рекомендует перейти на Java . время занятий.

    Чтобы узнать больше, см. Oracle Tutorial . И поиск переполнения стека для многих примеров и объяснений. Спецификация JSR 310 .

    Вы можете обменять Java. Время объектов непосредственно с вашей базой данных. Используйте драйвер JDBC , совместимый с JDBC 4 . 2 или позже. Нет необходимости в строках, нет необходимости в java.sql.* классах.

    Где взять Java. время занятий?

    • Java SE 8 , Java SE 9 , Java SE 10 и выше
      • Встроенный.
      • Часть стандартного Java API со встроенной реализацией.
      • Java 9 добавляет некоторые незначительные функции и исправления.
    • Java SE 6 и Java SE 7
      • Большая часть Java. временная функциональность перенесена на Java 6 & amp; 7 в ThreeTen-Backport .
    • Android
      • Более поздние версии Android связывают реализации Java. время занятий.
      • Для более ранней версии Android (& lt; 26) проект ThreeTenABP адаптируется ThreeTen-Backport (упоминалось выше). См. Как использовать ThreeTenABP… .

    Проект ThreeTen-Extra расширяет Java. время с дополнительными занятиями. Этот проект является полигоном для возможных будущих дополнений к Java. время. Здесь вы можете найти несколько полезных классов, таких как , Interval, , , YearWeek, , , YearQuarter, и , а также .

    ответ дан Basil Bourque, с репутацией 96579, 23.03.2016
  • 23 рейтинг

    Существует несколько вариантов, поскольку Android в основном является Java, но если вы хотите записать его в textView, следующий код поможет:

    String currentDateTimeString = DateFormat.getDateInstance().format(new Date());
    
    // textView is the TextView view that should display it
    textView.setText(currentDateTimeString);
    
    ответ дан eLobato, с репутацией 3111, 20.03.2011
  • 20 рейтинг
    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
    
    ответ дан Vignesh KM, с репутацией 570, 6.07.2016
  • 15 рейтинг
    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);
    
    ответ дан Alex Muriithi, с репутацией 1406, 20.10.2012
  • 11 рейтинг
        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);
    
    ответ дан duggu, с репутацией 28305, 24.04.2013
  • 11 рейтинг

    Вы также можете использовать Android. Операционные системы. SystemClock. Например SystemClock. elapsedRealtime () даст вам более точные показания времени, когда телефон спит.

    ответ дан Quadroid, с репутацией 197, 9.08.2011
  • 11 рейтинг

    Это метод, который будет полезен для получения даты и времени:

    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
    
    ответ дан Jorgesys, с репутацией 89449, 9.05.2017
  • 11 рейтинг
    Time time = new Time();
    time.setToNow();
    System.out.println("time: " + time.hour+":"+time.minute);
    

    Это даст вам, например, 12:32.

    Не забудьте импортировать Android. текст. формат. Время;

    ответ дан Sam Haque, с репутацией 111, 18.03.2013
  • 9 рейтинг

    Для настроенного формата даты и времени:

        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

    ответ дан Omar Faroque Anik, с репутацией 1635, 18.06.2015
  • 8 рейтинг

    Вы можете получить дату, используя:

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

    Это даст вам результат в хорошем виде, как в этом примере: «2014/02/09».

    ответ дан Annabelle, с репутацией 347, 9.02.2014
  • 8 рейтинг

    Если вам нужна текущая дата,

    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 ));
    
    ответ дан RejoylinLokeshwaran, с репутацией 389, 1.02.2017
  • 7 рейтинг
    Time now = new Time();
    now.setToNow();
    

    Попробуйте, это работает и для меня.

    ответ дан TheMan, с репутацией 639, 17.02.2013
  • 7 рейтинг
    Date todayDate = new Date();
    todayDate.getDay();
    todayDate.getHours();
    todayDate.getMinutes();
    todayDate.getMonth();
    todayDate.getTime();
    
    ответ дан Muhammad Aamir Ali, с репутацией 13751, 16.07.2013
  • 7 рейтинг

    вы можете просто использовать следующий код:

     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());
    
    ответ дан Ali Ziaee, с репутацией 241, 6.01.2017
  • 5 рейтинг

    Ну, у меня были проблемы с некоторыми ответами 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

    ответ дан Charlie, с репутацией 113, 3.10.2017
  • 4 рейтинг

    Приведенный ниже метод возвращает текущую дату и время в строке. Используйте другой часовой пояс в соответствии с вашим фактическим часовым поясом. Я использовал GMT

    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);
    }
    
    ответ дан Danger, с репутацией 265, 25.07.2017
  • 4 рейтинг

    Попробуйте это

    String mytime = (DateFormat.format("dd-MM-yyyy hh:mm:ss", new java.util.Date()).toString());
    
    ответ дан Abhinaw Kumar, с репутацией 112, 23.02.2016
  • 3 рейтинг

    Попробуйте этот код, он отображает текущую дату и время

     Date date = new Date(System.currentTimeMillis());
     SimpleDateFormat dateFormat = new SimpleDateFormat("hh:mm aa",
                             Locale.ENGLISH);
     String var = dateFormat.format(date));
    
    ответ дан Kinjal, с репутацией 726, 25.05.2015
  • 3 рейтинг

    Вы должны использовать класс Calendar в соответствии с новым API. Дата класса устарела сейчас.

    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);
    
    ответ дан Akshay Paliwal, с репутацией 1995, 4.02.2015
  • 1 рейтинг

    попробуйте использовать ниже код:

     Date date = new Date();
     SimpleDateFormat dateFormatWithZone = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'",Locale.getDefault());  
     String currentDate = dateFormatWithZone.format(date);
    
    ответ дан Manikandan K, с репутацией 435, 19.09.2016
  • 0 рейтинг

    В com есть класс утилит ISO8601Utils. Google. gson. внутренний. привязывать. Пакет утилит, так что если вы используете GSON в своем приложении, вы можете использовать это.

    Он поддерживает миллис и часовые пояса, так что это очень хороший вариант прямо из коробки.

    ответ дан FilipMarusca, с репутацией 141, 16.06.2017
  • 0 рейтинг

    Вот несколько способов получить время и дату

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

    Тост. makeText (this, formattedTime, Toast. LENGTH_SHORT). шоу();

    }
    

    Простой способ узнать текущее время и дату

    import java.util.Calendar
    
    Date currentTime = Calendar.getInstance().getTime();
    
    ответ дан Pradeep Sheoran, с репутацией 70, 26.09.2018
  • 0 рейтинг
        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);
    
    ответ дан Bryan Ibrahim, с репутацией 342, 12.01.2018
  • 0 рейтинг

    Kotlin

    Вот несколько способов узнать текущее время в котлине.

    fun main(args: Array) {
        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
    }
    
    ответ дан Khemraj, с репутацией 7521, 1.10.2018
  • 0 рейтинг
    String DataString=DateFormat.getDateInstance(DateFormat.SHORT).format(Calendar.getInstance().getTime());
    

    Чтобы получить короткую дату в формате String в локализованном формате устройства.

    Я не могу понять, почему так много ответов являются жестко закодированными форматами даты и времени, когда OS / Java обеспечивает правильную локализацию Даты и времени? Разве не лучше всегда использовать форматы устройства, а не программиста?

    Он также обеспечивает чтение дат в локализованных форматах:

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

    Тогда это зависит от пользователя, устанавливающего формат для отображения даты и времени, а не вы? Независимо от языков и т. Д. В разных странах существуют разные форматы с одним и тем же языком.

    ответ дан Jan Bergström, с репутацией 115, 29.02.2016
  • -1 рейтинг
    Calendar.getInstance().getTime();
    
    ответ дан Salman, с репутацией 54, 13.06.2018