В настоящее время время отображается как 13:35. Однако я хочу отображать 12-часовой формат с AM / PM, то есть 13:35 вместо 13:35.
Текущий код выглядит следующим образом
private static final int FOR_HOURS = 3600000;
private static final int FOR_MIN = 60000;
public String getTime(final Model model) {
SimpleDateFormat formatDate = new SimpleDateFormat("HH:mm a");
formatDate.setTimeZone(userContext.getUser().getTimeZone());
model.addAttribute("userCurrentTime", formatDate.format(new Date()));
final String offsetHours = String.format("%+03d:%02d", userContext.getUser().getTimeZone().getRawOffset()
/ FOR_HOURS, Math.abs(userContext.getUser().getTimeZone().getRawOffset() % FOR_HOURS / FOR_MIN));
model.addAttribute("offsetHours",
offsetHours + " " + userContext.getUser().getTimeZone().getDisplayName(Locale.ROOT));
return "systemclock";
}
java
date-format
Ронан
источник
источник
SimpleDateFormat formatDate = new SimpleDateFormat("hh:mm a");
Ответы:
Самый простой способ получить его, используя шаблон даты -
h:mm a
, гдеФрагмент кода:
DateFormat dateFormat = new SimpleDateFormat("hh:mm a");
Подробнее о документации - SimpleDateFormat java 7
источник
Использовать это
SimpleDateFormat formatDate = new SimpleDateFormat("hh:mm a");
Документы Java для SimpleDateFormat
источник
DateTimeFormatter
класса согласно JSR 310.использовать
"hh:mm a"
вместо"HH:mm a"
. Здесьhh
для 12-часового формата иHH
для 24-часового формата.Живая демонстрация
источник
SimpleDateFormat formatDate = new SimpleDateFormat("hh:mm:ss a");
h используется для времени AM / PM (1–12).
H используется в течение 24 часов (1-24).
a - маркер AM / PM
м - минута в час
Примечание. Два h будут выводить начальный ноль: 13:13. Один h будет напечатан без нуля в начале: 13:13.
Похоже, почти все уже меня опередили, но я отвлекся
источник
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MMM-yy hh.mm.ss.S aa"); String formattedDate = dateFormat.format(new Date()).toString(); System.out.println(formattedDate);
Выход: 11-сен-13 12.25.15.375
источник
// hh:mm will print hours in 12hrs clock and mins (e.g. 02:30) System.out.println(DateTimeFormatter.ofPattern("hh:mm").format(LocalTime.now())); // HH:mm will print hours in 24hrs clock and mins (e.g. 14:30) System.out.println(DateTimeFormatter.ofPattern("HH:mm").format(LocalTime.now())); // hh:mm a will print hours in 12hrs clock, mins and AM/PM (e.g. 02:30 PM) System.out.println(DateTimeFormatter.ofPattern("hh:mm a").format(LocalTime.now()));
источник
Использование Java 8:
LocalTime localTime = LocalTime.now(); DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("hh:mm a"); System.out.println(localTime.format(dateTimeFormatter));
Вывод находится в
AM/PM
формате.Sample output: 3:00 PM
источник
Locale
, вызвавwithLocale
этот объект форматирования, чтобы определить человеческий язык и культурные нормы, которые будут использоваться при созданииAM
/PM
text.Просто замените приведенную ниже инструкцию, и она будет работать.
SimpleDateFormat formatDate = new SimpleDateFormat("hh:mm a");
источник
tl; dr
Пусть современные классы java.time JSR 310 автоматически генерируют локализованный текст, а не жестко кодируют 12-часовые часы и AM / PM.
LocalTime // Represent a time-of-day, without date, without time zone or offset-from-UTC. .now( // Capture the current time-of-day as seen in a particular time zone. ZoneId.of( "Africa/Casablanca" ) ) // Returns a `LocalTime` object. .format( // Generate text representing the value in our `LocalTime` object. DateTimeFormatter // Class responsible for generating text representing the value of a java.time object. .ofLocalizedTime( // Automatically localize the text being generated. FormatStyle.SHORT // Specify how long or abbreviated the generated text should be. ) // Returns a `DateTimeFormatter` object. .withLocale( Locale.US ) // Specifies a particular locale for the `DateTimeFormatter` rather than rely on the JVM’s current default locale. Returns another separate `DateTimeFormatter` object rather than altering the first, per immutable objects pattern. ) // Returns a `String` object.
Автоматически локализовать
Вместо того, чтобы настаивать на 12-часовом режиме с AM / PM, вы можете позволить java.time автоматически локализоваться для вас. Звоните
DateTimeFormatter.ofLocalizedTime
.Для локализации укажите:
FormatStyle
чтобы определить, насколько длинной или сокращенной должна быть строка.Locale
для определения:Здесь мы получаем текущее время дня в определенном часовом поясе. Затем мы генерируем текст, чтобы представить это время. Мы локализуем на французский язык в культуре Канады, затем на английский язык в культуре США.
ZoneId z = ZoneId.of( "Asia/Tokyo" ) ; LocalTime localTime = LocalTime.now( z ) ; // Québec Locale locale_fr_CA = Locale.CANADA_FRENCH ; // Or `Locale.US`, and so on. DateTimeFormatter formatterQuébec = DateTimeFormatter.ofLocalizedTime( FormatStyle.SHORT ).withLocale( locale_fr_CA ) ; String outputQuébec = localTime.format( formatterQuébec ) ; System.out.println( outputQuébec ) ; // US Locale locale_en_US = Locale.US ; DateTimeFormatter formatterUS = DateTimeFormatter.ofLocalizedTime( FormatStyle.SHORT ).withLocale( locale_en_US ) ; String outputUS = localTime.format( formatterUS ) ; System.out.println( outputUS ) ;
Посмотрите, как этот код запускается вживую на IdeOne.com .
источник
Если вам нужно текущее время с AM, PM в Android используйте
String time = new SimpleDateFormat("hh : mm a", Locale.getDefault()).format(Calendar.getInstance().getTime());
Если вы хотите текущее время с утра, вечера
String time = new SimpleDateFormat("hh : mm a", Locale.getDefault()).format(Calendar.getInstance().getTime()).toLowerCase();
ИЛИ
Начиная с уровня API 26
LocalTime localTime = LocalTime.now(); DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("hh:mm a"); String time = localTime.format(dateTimeFormatter);
источник
SimpleDateFormat
уроком. По крайней мере, не в качестве первого варианта. И не без оговорок. Сегодня у нас намного лучшеjava.time
, современный API даты и времени Java и егоDateTimeFormatter
.DateTimeFormatter.ofPattern("hh:mm a", Locale.ENGLISH)
(или другой англоязычный язык).SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm a");
Это отобразит дату и время
источник
//To get Filename + date and time SimpleDateFormat f = new SimpleDateFormat("MMM"); SimpleDateFormat f1 = new SimpleDateFormat("dd"); SimpleDateFormat f2 = new SimpleDateFormat("a"); int h; if(Calendar.getInstance().get(Calendar.HOUR)==0) h=12; else h=Calendar.getInstance().get(Calendar.HOUR) String filename="TestReport"+f1.format(new Date())+f.format(new Date())+h+f2.format(new Date())+".txt"; The Output Like:TestReport27Apr3PM.txt
источник
Чтобы поместить текущий мобильный формат даты и времени в
Date date = new Date(); String stringDate = DateFormat.getDateTimeInstance().format(date);
Вы можете показать его своим
Activity
,Fragment
,CardView
, вListView
любом месте , используяTextView
` TextView mDateTime; mDateTime=findViewById(R.id.Your_TextViewId_Of_XML); Date date = new Date(); String mStringDate = DateFormat.getDateTimeInstance().format(date); mDateTime.setText("My Device Current Date and Time is:"+date); `
источник
SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss a");
источник
import java.text.SimpleDateFormat; import java.text.DateFormat; import java.util.Date; public class Main { public static void main(String [] args){ try { DateFormat parseFormat = new SimpleDateFormat("dd-MM-yyyy HH:mm a"); String sDate = "22-01-2019 13:35 PM"; Date date = parseFormat.parse(sDate); SimpleDateFormat displayFormat = new SimpleDateFormat("dd-MM-yyyy hh:mm a"); sDate = displayFormat.format(date); System.out.println("The required format : " + sDate); } catch (Exception e) {} } }
источник
Для этого вы можете использовать SimpleDateFormat.
SimpleDateFormat formatDate = new SimpleDateFormat("hh:mm a");
Надеюсь, это тебе поможет.
источник