2011-12-30 16 views
6

Czy istnieje sposób na sformatowanie miesiąca bez zer wiodących w języku Java/Android?Miesiąc bez zer wiodących w systemie Android

mam to:

mTitleText.setText(String.format("Pick Date Time: %tm/%te/%tY %tk:%02d", 
       mTime,mTime,mTime,mTime,minute)); 

I zwraca 12.02.2012 13:23 kiedy chcę wrócić 2/12/2012 13:23.

+1

Nie możesz po prostu odciąć wiodącego 0 podłańcuchem? A może chcesz bardziej eleganckiego rozwiązania? –

Odpowiedz

15

Dla zainteresowanych unikając długich JavaDocs:

Date mTime = new Date(); 
String text = new SimpleDateFormat("M/d/yyyy hh:mm").format(mTime); 

Korzystanie M zamiast MM i d zamiast dd uczynią dzień miesiąca i miesiąc bez zera na początku, jeśli to możliwe .

+5

Możesz również usunąć jeden z 'h' w ciągu kilku godzin, aby usunąć poprzednie zera. –

0

tl; dr

ZonedDateTime.now() 
      .format(DateTimeFormatter.ofPattern("M/d/uuuu HH:mm")) 

java.time

Nowoczesny sposób jest z klasami java.time że wyprzeć kłopotliwych klasy Date-Time stare dziedzictwo.

W klasie DateTimeFormatter zdefiniuj wzór formatowania, używając kodów pojedynczych znaków dla miesiąca i/lub dnia miesiąca zamiast kodów dwuznakowych.

DateTimeFormatter f = DateTimeFormatter.ofPattern("M/d/uuuu HH:mm"); 

Pobierz aktualny moment.

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

Wygeneruj ciąg.

String output = zdt.format(f) 

O java.time

Ramy java.time jest wbudowana w Java 8 i późniejszych. Te klasy zastępują kłopotliwe stare klasy czasu i daty, takie jak java.util.Date, .Calendar, & java.text.SimpleDateFormat.

Projekt Joda-Time, teraz w maintenance mode, zaleca migrację do java.time. Aby uzyskać więcej informacji, zobacz

. I wyszukaj Stack Overflow dla wielu przykładów i objaśnień.

Znaczna część funkcjonalności java.time powraca walcowy Java 6 & 7 w ThreeTen-Backport i ponadto dostosowany do Android w ThreeTenABP (patrz How to use…).

Projekt ThreeTen-Extra rozszerza java.time o dodatkowe klasy. Ten projekt jest poligonem wskazującym na możliwe przyszłe dodatki do java.time.Możesz znaleźć tutaj kilka użytecznych klas, takich jak Interval, YearWeek, YearQuarter i more.

Powiązane problemy