2017-03-20 3 views
-2

Ich habe ein Textfeld für die Zeit, die Eingabe als Zeichenfolge dauert, und ich muss es in ein Format konvertieren, das ein Leerzeichen zwischen der Zahl und AM oder PM hat.Format Zeit in Java

ZB: 05.00 hat werden in 05.00 umgewandelt PM

+6

Haben Sie _anything_ probiert? Dies ist kein Code-Schreibdienst. Veröffentlichen Sie einen [MCVE] (https://stackoverflow.com/help/mcve). –

Antwort

1

Hier ist ein Beispiel, bei Datum/Uhrzeit Formatierungsfunktionen verwenden .

Beachten Sie, dass Parsing-Fehler ausgegeben werden, wenn die Eingabe nicht im richtigen Format vorliegt.

Wenn das AM/PM-Segment garantiert ein Großbuchstabe ist, kann der Aufruf toUpperCase() entfernt werden.

package com.stackoverflow.q42913242; 

import java.time.LocalTime; 
import java.time.format.DateTimeFormatter; 

@SuppressWarnings("javadoc") 
public class Answer { 

    static final DateTimeFormatter FROM_PATTERN = DateTimeFormatter.ofPattern("h:mma"); 

    static final DateTimeFormatter TO_PATTERN = DateTimeFormatter.ofPattern("h:mm a"); 

    public static void main(String[] args) { 

     System.out.println(convert("5:00pm")); 

     System.out.println(convert("12:00AM")); 
    } 

    public static String convert(String input) { 
     final LocalTime localTime = LocalTime.parse(input.toUpperCase(), FROM_PATTERN); 
     return localTime.format(TO_PATTERN); 
    } 
} 
0

Sie Teilzeichenfolge für sie verwenden können, zB .:

String time = "5:00PM"; 
    String newTime = time.substring(0,time.length()-2) + " " + time.substring(time.length()-2);