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

940

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

  • 0
    43 ответа! Хотя многие из них были хорошими, когда они были написаны, хороший ответ для использования в 2018 году здесь .
Теги:
date
time

34 ответа

1074
Лучший ответ

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

import java.util.Calendar

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

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

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

  • 11
    +1 Это было очень полезно. Будучи новичком, это все эти маленькие лакомые кусочки, которые нам нужны ... Я использую Календарь, чтобы получить юлианскую дату. Намного проще, чем получить миллисекунды и выяснить, равно ли это значение сегодня;)
  • 0
    Спасибо alextsc это то что мне нужно
Показать ещё 7 комментариев
498

Вы можете (но больше не нужно - см. ниже!) использовать android.text.format.Time:

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

Из ссылки, приведенной выше:

Класс Time - это более быстрая замена для java.util.Calendar и java.util.GregorianCalendar. Экземпляр класса Time представляет собой момент времени, указанный со второй точностью.


ПРИМЕЧАНИЕ 1: Прошло несколько лет с тех пор, как я написал этот ответ, и речь идет о старом, специфичном для Android и теперь устаревшем классе. Google сейчас говорит, что "[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.

  • 2
    @InsanityOnABun и Мухаммед Бабар. Нет нет нет. Документы говорят «указано со второй точностью». Даже самый простой тест (получение текущего времени в цикле, toMillis и запись / печать результата) показал бы, что полученное время имеет значение 000 в виде миллисекунды!
  • 3
    @IgorZelaya Если вам нужна точность в миллисекундах, вы, скорее всего, используете интервал времени , а не время суток. Документы Android рекомендуют SystemClock.uptimeMillis() для определения интервала времени. Так как это то, что используется большинством встроенных функций, есть сильная мотивация для того, чтобы это было хорошо реализовано на всех устройствах. Смотрите обсуждение в SystemClock ... Если вы хотите соотнести это с временем суток, в onResume приложения прочитайте и это, и Time / setToNow / toMillis. Помните разницу между ними.
Показать ещё 3 комментария
301

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

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_HHmmss");
String currentDateandTime = sdf.format(new Date());
  • 0
    Это даст время в UTC, должно переходить на часовые пояса.
  • 8
    Осторожно, SimpleDateFormat может быть проблематичным, если производительность является проблемой. В моем приложении было пользовательское представление, в котором было около 20 меток ЧЧ: ММ, представляющих определенное время (длинные целые числа, содержащие миллисекунды), и такое же количество доступных для рисования ресурсов. Первоначальное тестирование показало, что взаимодействие не было таким подвижным, как я хотел. Когда я профилировал onDraw (), я обнаружил, что вызовы SimpleTimeFormatter занимают 80% времени. На самом деле, я читаю эту страницу как часть поиска более эффективного средства форматирования, чтобы узнать больше о календарях и т. Д.
Показать ещё 4 комментария
198

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

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
127

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

UPDATE

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

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

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

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

  • 0
    Время должно быть импортировано из какой упаковки?
  • 0
    android.text.format как указано выше
Показать ещё 1 комментарий
73

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

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

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

Feb 27, 2012 5:41:23 PM
  • 0
    Я получил текущую дату, день и время системы, но время не меняется. Я хочу увеличить время секунды на секунды. Как я могу это сделать?
  • 1
    Это рекомендуемый способ сделать это, согласно API Android: developer.android.com/reference/java/text/… Спасибо!
46

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

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

Изображение 2895

Изображение 2896 Изображение 2897

46

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

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

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

Time currentTime = new Time();
currentTime.setToNow();
  • 12
    Нет необходимости в System.currentTimeMillis() ; просто new Date() делает то же самое .
  • 0
    @Jonik Cannot resolve constructor Date() удается Cannot resolve constructor Date() в Android, Android SDK использует смесь Java 6 и 7.
Показать ещё 2 комментария
34

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

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

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);
  • 0
    как можно получить дату на следующие 5-10 дней .. это ручной расчет здесь?
  • 0
    @CoDe Вы используете дату для этого
27

ТЛ; др

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

…или…

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

Детали

Другие ответы, хотя и правильные, устарели. Старые классы времени-времени оказались плохо спроектированными, запутанными и сложными.

java.time

Эти старые классы были заменены рамкой java.time.

Эти новые классы вдохновлены очень успешным проектом 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 [Америка /Los_Angeles]

Пользовательский формат

Или укажите свой собственный шаблон форматирования с классом 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.Date, Calendar и SimpleDateFormat.

Проект Joda-Time, теперь в режиме обслуживания, советует перейти на классы java.time.

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

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

Где можно получить классы java.time?

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

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

  • 1
    @ giraffe.guru Перечитайте мой ответ. Вы пропустили третью пулю. Большая часть функциональности java.time перенесена на Java 6 и 7 в ThreeTen-Backport и дополнительно адаптирована для Android в ThreeTenABP .
  • 0
    Instant.now() и ZonedDateTime.now() требуется API 26
Показать ещё 1 комментарий
22

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

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

// textView is the TextView view that should display it
textView.setText(currentDateTimeString);
  • 8
    Вы должны использовать Calendar или GregorianCalendar . Класс Date устарел.
  • 0
    Спасибо, приятель :) Я даже понятия не имел об этом
Показать ещё 3 комментария
18
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 determine length of format (e.g. MM, MMM or MMMMM)
d   Day in month. Number of d 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 0-23)
K   Hour in day, AM / PM (0-11)
z   Time Zone
  • 1
    Хотя и другие ответы верны тоже. Мне понравился этот ответ, так как он также помогает решить связанные со временем проблемы. Спасибо @Vighnesh KM
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);
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
  • 0
    Мне не нравится тесная связь логики представления и логики процесса; Я бы предпочел метод, который просто выполняет форматирование и принимает параметр ввода даты. Я также не понимаю, почему вы используете 2 SimpleDateFormat s & 2 Date s ... разве вы не можете просто использовать "yyyy/MM/dd HH:mm" в качестве формата и календаря вызовов один раз?
  • 1
    спасибо за мою работу
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);
11
Time time = new Time();
time.setToNow();
System.out.println("time: " + time.hour+":"+time.minute);

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

Не забудьте импортировать android.text.format.Time;

11

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

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

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

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

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

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

  • 0
    Конструктор без параметров Time t = new Time(); будет использовать часовой пояс по умолчанию. По моему опыту, по умолчанию == текущий.
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());
7
Date todayDate = new Date();
todayDate.getDay();
todayDate.getHours();
todayDate.getMinutes();
todayDate.getMonth();
todayDate.getTime();
7
Time now = new Time();
now.setToNow();

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

4

Ниже метод вернет текущую дату и время в String. Используйте другой часовой пояс в соответствии с вашим текущим часовым поясом. Я использовал 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);
}
4

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

String mytime = (DateFormat.format("dd-MM-yyyy hh:mm:ss", new java.util.Date()).toString());
3

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

3

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

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

Вы должны использовать класс Calender в соответствии с новым API. Класс Date теперь устарел.

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);
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);
0
Calendar.getInstance().getTime();
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);
0

В com.google.gson.internal.bind.util есть класс ISO8601Utils utils, поэтому, если вы используете GSON в своем приложении, вы можете использовать его.

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

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) {
    }

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню