Как я могу получить текущую дату в Android?
Я написал следующий код
Date d = new Date();
CharSequence s = DateFormat.format("MMMM d, yyyy ", d.getTime());
Но задает мне параметр, мне нужна текущая дата в строковом формате,
like
28-Dec-2011
чтобы я мог установить более TextView
,
немного объясните, если вы считаете, что что-то необходимо, я новичок в разработке Android.
Ответы
Ответ 1
Вы можете использовать класс SimpleDateFormat
для форматирования даты в желаемом формате.
Просто проверьте эту ссылку, где вы получите идею для вашего примера.
Например:
String dateStr = "04/05/2010";
SimpleDateFormat curFormater = new SimpleDateFormat("dd/MM/yyyy");
Date dateObj = curFormater.parse(dateStr);
SimpleDateFormat postFormater = new SimpleDateFormat("MMMM dd, yyyy");
String newDateStr = postFormater.format(dateObj);
Обновить:
Подробный пример здесь, я бы посоветовал вам пройти этот пример и понять концепцию класса SimpleDateFormat.
Окончательное решение:
Date c = Calendar.getInstance().getTime();
System.out.println("Current time => " + c);
SimpleDateFormat df = new SimpleDateFormat("dd-MMM-yyyy");
String formattedDate = df.format(c);
Ответ 2
Его простой однострочный код для получения текущей даты в этом формате гггг-мм-дд, вы можете использовать свой формат, который вы хотите:
String date = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()).format(new Date());
Ответ 3
Это не связано с андроидом, поскольку он основан на Java, поэтому вы можете использовать
private String getDateTime() {
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date = new Date();
return dateFormat.format(date);
}
Ответ 4
public String giveDate() {
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("EEE, MMM d, yyyy");
return sdf.format(cal.getTime());
}
Ответ 5
попробуйте это,
SimpleDateFormat timeStampFormat = new SimpleDateFormat("yyyyMMddHHmmssSS");
Date myDate = new Date();
String filename = timeStampFormat.format(myDate);
Ответ 6
CharSequence s = DateFormat.getDateInstance().format("MMMM d, yyyy ");
Сначала вам нужен экземпляр
Ответ 7
Работает как шарм и конвертирует в String в качестве бонуса;)
SimpleDateFormat currentDate = new SimpleDateFormat("dd/MM/yyyy");
Date todayDate = new Date();
String thisDate = currentDate.format(todayDate);
Ответ 8
String date = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
//импортируем класс Date как java.util
Ответ 9
В приведенном ниже коде отображаются время и дата
Calendar cal = Calendar.getInstance();
cal.getTime().toString();
Ответ 10
Calendar cal = Calendar.getInstance();
Calendar dt = Calendar.getInstance();
dt.clear();
dt.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),cal.get(Calendar.DATE));
return dt.getTime();
Ответ 11
SimpleDateFormat df = new SimpleDateFormat("dd-MMM-yyyy");
String date = df.format(Calendar.getInstance().getTime());
Ответ 12
Простая настройка решения Paresh:
Date date = Calendar.getInstance().getTime();
SimpleDateFormat df = new SimpleDateFormat("dd-MMM-yyyy");
String formattedDate = df.format(date);
Ответ 13
Вы можете использовать следующий код, чтобы получить дату в нужном вам формате.
String date = String.valueOf(android.text.format.DateFormat.format("dd-MM-yyyy", new java.util.Date()));
Ответ 14
Я даю современный ответ.
java.time и ThreeTenABP
Чтобы получить текущую дату:
LocalDate today = LocalDate.now(ZoneId.of("America/Hermosillo"));
Это дает вам объект LocalDate
, который вы должны использовать для хранения даты в вашей программе. LocalDate
- это дата без времени суток.
Только когда вам нужно отобразить дату для пользователя, отформатируйте ее в строку, подходящую для локали пользователя:
DateTimeFormatter userFormatter
= DateTimeFormatter.ofLocalizedDate(FormatStyle.LONG);
System.out.println(today.format(userFormatter));
Когда я сегодня запускал этот фрагмент в английской локали США, вывод был:
13 июля 2019 г.
Если вы хотите, чтобы он был короче, укажите FormatStyle.MEDIUM
или даже FormatStyle.SHORT
. DateTimeFormatter.ofLocalizedDate
использует локаль форматирования по умолчанию, поэтому дело в том, что она выдаст выходные данные, подходящие для этой локали, отличающиеся для разных локалей.
Если у вашего пользователя есть особые требования к формату вывода, используйте строку шаблона формата:
DateTimeFormatter userFormatter = DateTimeFormatter.ofPattern(
"d-MMM-u", Locale.forLanguageTag("ar-AE"));
13- يول -2019
Я использую и рекомендую java.time, современный Java-интерфейс даты и времени. DateFormat
, SimpleDateFormat
, Date
и Calendar
используемые в вопросе и/или во многих других ответах, плохо разработаны и давно устарели. И с java.time гораздо приятнее работать.
Вопрос: Могу ли я использовать java.time на Android?
Да, java.time прекрасно работает на старых и новых устройствах Android. Это просто требует как минимум Java 6.
- В Java 8 и более поздних версиях, а также на более новых устройствах Android (начиная с уровня API 26) встроен современный API.
- В Java 6 и 7 получите ThreeTen Backport, бэкпорт современных классов (ThreeTen для JSR 310; см. Ссылки внизу).
- На (более старом) Android используйте Android-версию ThreeTen Backport. Его называют ThreeTenABP. И убедитесь, что вы импортируете классы даты и времени из
org.threeten.bp
с подпакетами.
связи
Ответ 15
Date c = Calendar.getInstance().getTime();
System.out.println("Current time => " + c);
SimpleDateFormat df = new SimpleDateFormat("dd-MMM-yyyy");
String formattedDate = df.format(c);
Это лучший ответ...
Ответ 16
Calendar c = Calendar.getInstance();
int day = c.get(Calendar.DAY_OF_MONTH);
int month = c.get(Calendar.MONTH);
int year = c.get(Calendar.YEAR);
String date = day + "/" + (month + 1) + "/" + year;
Log.i("TAG", "--->" + date);
Ответ 17
public static String getcurrentDateAndTime(){
Date c = Calendar.getInstance().getTime();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd");
String formattedDate = simpleDateFormat.format(c);
return formattedDate;
}
// String currentdate= getcurrentDateAndTime();
Ответ 18
Самый простой способ получить текущую дату в текущей локали (язык устройства!):
String currentDate = DateFormat.getDateInstance().format(Calendar.getInstance().getTime());
Если вы хотите, чтобы дата в разных стилях использовала getDateInstance(int style)
:
DateFormat.getDateInstance(DateFormat.FULL).format(Calendar.getInstance().getTime());
Другие стили: DateFormat.LONG
, DateFormat.DATE_FIELD
, DateFormat.DAY_OF_YEAR_FIELD
и т.д. (используйте CTRL+Space, чтобы увидеть их все)
Если вам тоже нужно время:
String currentDateTime = DateFormat.getDateTimeInstance(DateFormat.DEFAULT,DateFormat.LONG).format(Calendar.getInstance().getTime());
Ответ 19
public static String getDateTime() {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MMMM dd, yyyy HH:mm:ss", Locale.getDefault());
Date date = new Date();
return simpleDateFormat.format(date);
}
Ответ 20
попробуйте с этой ссылкой кода, это абсолютно правильный ответ для всех случаев по всей дате и времени. или настроить дату и время в соответствии с потребностями и требованиями приложения.
попробуйте эту ссылку. попробуйте с этой ссылкой
Ответ 21
Я написал приложение календаря с помощью CalendarView и его код:
CalendarView cal = (CalendarView) findViewById(R.id.calendar);
cal.setDate(new Date().getTime());
Поле 'calendar' - это мой CalendarView.
Импорт:
import android.widget.CalendarView;
import java.util.Date;
У меня есть текущая дата без ошибок.
Ответ 22
Это код, который я использовал:
Date date = new Date(); // to get the date
SimpleDateFormat df = new SimpleDateFormat("dd-MM-yyyy"); // getting date in this format
String formattedDate = df.format(date.getTime());
text.setText(formattedDate);
Ответ 23
Я уже использовал это:
Date What_Is_Today=Calendar.getInstance().getTime();
SimpleDateFormat Dateformat = new SimpleDateFormat("dd-MM-yyyy");
String Today=Dateformatf.format(What_Is_Today);
Toast.makeText(this,Today,Toast.LENGTH_LONG).show();
сначала я получаю время, затем я объявляю простой формат даты (чтобы получить дату вроде: 19-6-2018), затем я использую формат, чтобы изменить дату на строку.
Ответ 24
Это код я используется:
final Calendar c = Calendar.getInstance();
year = c.get(Calendar.YEAR);
month = c.get(Calendar.MONTH);
day = c.get(Calendar.DAY_OF_MONTH);
// Set current date into textview
tvDisplayDate.setText(new StringBuilder()
.append(month + 1).append("-") // Month is 0 based, add 1
.append(day).append("-")
.append(year).append(" Today is :" + thursday ) );
// Set current date into datepicker
dpResult.init(year, month, day, null);