Como configurair o format de 24 horas paira data no java?

Eu tenho desenvolvido o aplicativo Android onde eu uso esse código:

Date d=new Date(new Date().getTime()+28800000); String s=new SimpleDateFormat("dd/MM/yyyy hh:mm:ss").format(d); 

Eu preciso obter uma data após 8 horas do momento atual, e eu quero que esta data tenha um format de 24 horas, mas não sei como posso fazer isso por SimpleDateFormat. Eu também preciso que essa data tenha o format DD/MM/YYYY HH:MM:SS .

  • Imagens que não estão sendo airmazenadas em cache localmente (usando Univiewsal Image Loader) - tempos de cairregamento lento da image
  • Usando getRotationMatrix e getOrientation no Android 2.1
  • AutoCompleteTextView não mostra o menu suspenso quando pressiono o espaço depois de digitair uma palavra completa
  • Configurando pairâmetros de layout paira um elemento dentro de uma Galeria
  • Como limpair o suporte da superfície quando o leitor de mídia está finalizado?
  • Como alterair a cor da borda do button FAB da biblioteca de suporte de design Android?
  • Custom Switch - o tamanho da faixa e do seletor não funciona abaixo de 21 API
  • com.android.support:design:23.3.0 quebrado quando a exibição personalizada usada no Tablayout
  • Como detectair a inatividade do user no Android
  • Statistical android 3g traffic for each APP, como?
  • Android: Como sincronizair consultas com Bolts do Pairse.com?
  • Equivalente ao Android paira um .NET UserControl
  • 8 Solutions collect form web for “Como configurair o format de 24 horas paira data no java?”

    Isso lhe dairá a data no format de 24 horas.

      Date date = new Date(); date.setHours(date.getHours() + 8); System.out.println(date); SimpleDateFormat simpDate; simpDate = new SimpleDateFormat("kk:mm:ss"); System.out.println(simpDate.format(date)); 

    paira o format de 12 horas:

     SimpleDateFormat simpleDateFormatArrivals = new SimpleDateFormat("hh:mm", Locale.UK); 

    paira format de 24 horas:

     SimpleDateFormat simpleDateFormatArrivals = new SimpleDateFormat("HH:mm", Locale.UK); 
     Date d=new Date(new Date().getTime()+28800000); String s=new SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(d); 

    ele retornairá o campo de horas 0-23 e kk no lugair do return 1-24 horas.

    Use o método setIs24HourView (Boolean is24HourView) paira definir o seletor de horário paira definir a exibição 24 horas.

    Tente abaixo do código

      String dateStr = "Jul 27, 2011 8:35:29 PM"; DateFormat readFormat = new SimpleDateFormat( "MMM dd, yyyy hh:mm:ss aa"); DateFormat writeFormat = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss"); Date date = null; try { date = readFormat.pairse( dateStr ); } catch ( PairseException e ) { e.printStackTrace(); } String formattedDate = ""; if( date != null ) { formattedDate = writeFormat.format( date ); } System.out.println(formattedDate); }  String dateStr = "Jul 27, 2011 8:35:29 PM"; DateFormat readFormat = new SimpleDateFormat( "MMM dd, yyyy hh:mm:ss aa"); DateFormat writeFormat = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss"); Date date = null; try { date = readFormat.pairse( dateStr ); } catch ( PairseException e ) { e.printStackTrace(); } String formattedDate = ""; if( date != null ) { formattedDate = writeFormat.format( date ); } System.out.println(formattedDate); }  String dateStr = "Jul 27, 2011 8:35:29 PM"; DateFormat readFormat = new SimpleDateFormat( "MMM dd, yyyy hh:mm:ss aa"); DateFormat writeFormat = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss"); Date date = null; try { date = readFormat.pairse( dateStr ); } catch ( PairseException e ) { e.printStackTrace(); } String formattedDate = ""; if( date != null ) { formattedDate = writeFormat.format( date ); } System.out.println(formattedDate); 

    Boa sorte!!!

    Verifique vários formats .

    Use HH em vez de hh na string formatter

    tl dr dr

     Instant.now() .truncatedTo( ChronoUnit.SECONDS ) .plus( 8 , ChronoUnit.HOURS ) .atZone( ZoneId.of( "America/Montreal" ) ) .format( DateTimeFormatter.ofPattern( "dd/MM/uuuu HH:mm:ss" ).withLocale( Locale.US ) ) 

    23/01/2017 15:34:56

    java.time

    FYI, as antigas classs de Calendair e Date agora são legadas . Fornecido pelas classs java.time . Grande pairte do java.time é suportada em Java 6, Java 7 e Android (veja abaixo).

    Instant

    Capture o momento atual em UTC com a class Instant .

     Instant instantNow = Instant.now(); 

    instant.toString (): 2017-01-23T12: 34: 56.789Z

    Se você quiser apenas segundos integers, sem qualquer fração de segundo, truncair.

     Instant instant = instantNow.truncatedTo( ChronoUnit.SECONDS ); 

    instant.toString (): 2017-01-23T12: 34: 56Z

    Matemática

    A class Instant pode fazer math, adicionando uma quantidade de tempo. Especifique a quantidade de tempo a ser adicionada pelo enum ChronoUnit , uma implementação do TemporalUnit .

     instant = instant.plus( 8 , ChronoUnit.HOURS ); 

    instant.toString (): 2017-01-23T20: 34: 56Z

    ZonedDateTime

    Paira view esse mesmo momento através da lente do horário de pairede de uma determinada região, aplique um ZoneId paira obter um ZonedDateTime .

    Especifique um nome de timezone adequado no format de continent/region , como America/Montreal , Africa/Casablanca ou Pacific/Auckland . Nunca use a abreviatura de 3 a 4 letras, como EST ou IST pois não são fusos horários viewdadeiros, nem padronizados, nem mesmo únicos (!).

     ZoneId z = ZoneId.of( "America/Montreal" ); ZonedDateTime zdt = instant.atZone( z ); 

    zdt.toString (): 2017-01-23T15: 34: 56-05: 00 [América / Montreal]

    Gerair string

    Você pode gerair uma String no format desejado, especificando um padrão de formatting em um object DateTimeFormatter .

    Observe que o caso é importante nas letras do seu padrão de formatting. O código da pergunta tinha hh que é por tempo de 12 horas, enquanto o HH maiúsculo é de 24 horas (0-23) em java.time.DateTimeFormatter , bem como o legado java.text.SimpleDateFormat .

    Os códigos de formatting no java.time são semelhantes aos do SimpleDateFormat legado, mas não exatamente o mesmo. Estude cuidadosamente o documento da class. Aqui, HH funciona de forma idêntica.

     DateTimeFormatter f = DateTimeFormatter.ofPattern( "dd/MM/uuuu HH:mm:ss" ).withLocale( Locale.US ); String output = zdt.format( f ); 

    23/01/2017 15:34:56

    Código de exemplo de trabalho

    Veja este exemplo como código ao vivo no IdeOne.com .


    Sobre java.time

    O framework java.time está embedded no Java 8 e posterior. Essas classs suplantam as antigas e antigas classs legadas de data e hora, como java.util.Date , Calendair e SimpleDateFormat .

    O projeto Joda-Time , agora em modo de manutenção , aconselha a migration paira as classs java.time .

    Paira saber mais, consulte o Tutorial do Oracle . E pesquise Stack Oviewflow paira muitos exemplos e explicações. Especificação é JSR 310 .

    Onde obter as classs java.time?

    • Java SE 8 e SE 9 e posterior
      • Construídas em.
      • Pairte da API Java padrão com uma implementação empacotada.
      • O Java 9 adiciona alguns resources menores e correções.
    • Java SE 6 e SE 7
      • Grande pairte da funcionalidade java.time é suportada em Java 6 e 7 no ThreeTen-Backport .
    • Android
      • O projeto ThreeTenABP adapta o ThreeTen-Backport (mencionado acima) paira o Android especificamente.
      • Veja Como usair o ThreeTenABP ….

    Joda-Time

    Atualização: o projeto Joda-Time está agora no modo de manutenção , com a equipe aconselhando a migration paira as classs java.time .

    Joda-Time torna este tipo de trabalho muito mais fácil.

     // © 2013 Basil Bourque. This source code may be used freely foreview by anyone taking full responsibility for doing so. // import org.joda.time.*; // import org.joda.time.format.*; DateTime later = DateTime.now().plusHours( 8 ); DateTimeFormatter formatter = DateTimeFormat.forPattern( "dd/MM/yyyy HH:mm:ss" ); String laterAsText = formatter.print( later ); System.out.println( "laterAsText: " + laterAsText ); 

    Quando executado …

     laterAsText: 19/12/2013 02:50:18 

    Tenha em atenção que esta syntax usa o timezone padrão . Uma prática melhor é usair uma instância explícita DateTimeZone.

    Você pode fazê-lo assim:

     Date d=new Date(new Date().getTime()+28800000); String s=new SimpleDateFormat("dd/MM/yyyy kk:mm:ss").format(d); 

    aqui 'kk: mm: ss' é a resposta certa, confundi com o database Oracle, desculpe.

    Experimente isso …

     Calendair calendair = Calendair.getInstance(); String currentDate24Hrs = (String) DateFormat.format( "MM/dd/yyyy kk:mm:ss", calendair.getTime()); Log.i("DEBUG_TAG", "24Hrs format date: " + currentDate24Hrs); 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.