Отображать текущее время в 12-часовом формате с AM/PM

В настоящее время время отображается как 13:35 PM Однако Я хочу отображать 12-часовой формат с AM/PM, т.е. 1:35 PM вместо 13:35 PM

Текущий код ниже

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";
}

Ответ 1

Самый простой способ получить его, используя шаблон даты - h:mm a, где

  • h - Час в am/pm (1-12)
  • m - минута в час
  • a - маркер Am/pm

Фрагмент кода:

DateFormat dateFormat = new SimpleDateFormat("hh:mm a");

Подробнее о документации - SimpleDateFormat java 7

Ответ 3

используйте "hh:mm a" вместо "hh:mm a". Здесь hh для 12-часового формата и hh для 24-часового формата.

Live Демо-версия

Ответ 4

SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MMM-yy hh.mm.ss.S aa");
String formattedDate = dateFormat.format(new Date()).toString();
System.out.println(formattedDate);

Вывод:   11-Sep-13 12.25.15.375 PM

Ответ 5

SimpleDateFormat formatDate = new SimpleDateFormat("hh:mm:ss a");
  • h используется для AM/PM раз (1-12).

  • H используется в течение 24 часов (1-24).

  • a - маркер AM/PM

  • m - минута в час

Примечание. Два часа будут печатать начальный ноль: 01:13 PM. Один h будет печатать без начального нуля: 1:13 вечера.

Похоже, в основном все избили меня до этого, но я отвлекаюсь

Ответ 6

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

Ответ 7

Использование 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

Ответ 8

Просто замените инструкцию ниже, и она будет работать.

SimpleDateFormat formatDate = new SimpleDateFormat("hh:mm a");

Ответ 9

    //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

Ответ 10

Если вы хотите текущее время с 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);

Ответ 11

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm a");

Отобразится дата и время

Ответ 12

ТЛ; др

Пусть современные классы 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 JVMs current default locale. Returns another separate 'DateTimeFormatter' object rather than altering the first, per immutable objects pattern.
)                                             // Returns a 'String' object.

10:31 AM

Автоматическая локализация

Вместо того, чтобы настаивать на 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.

10 h 31

10:31 AM

Ответ 13

SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss a");

Ответ 14

Чтобы разместить текущий формат даты и времени в

9 февраля 2018 года 10:36:59 PM

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

  '

Ответ 15

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

Ответ 16

Для этого вы можете использовать SimpleDateFormat.

SimpleDateFormat formatDate = new SimpleDateFormat("hh:mm a");

Надеюсь, это поможет вам.