SimpleDateFormat

RungetSvohu

Bekanntes Mitglied
Hallo,

ich habe eine kleine Frage zur Klasse
Code:
SimpleDateFormat
. Ich habe hier eine nette Instanz:
Java:
new SimpleDateFormat("HH:mm, d. MMM. yyyy", Locale.GERMAN);
Das Problem ist folgendes: Der Punkt nach MMM steht ja für die Abkürzung des Monatsnamen. Es gibt aber einen Monat, den Mai, mit nur drei Buchstaben. Also speziell für den Mai sollte es lieber so aussehen:
Java:
new SimpleDateFormat("HH:mm, d. MMM yyyy", Locale.GERMAN);
Lässt sich das mit einem
Code:
SimpleDateFormat
machen oder muss ich die Fallunterscheidung immer manuell vornehmen?

Zusatzfrage: Was ist eigentlich der Unterschied zwischen
Code:
Locale.GERMAN
und
Code:
Locale.GERMANY
?
 
S

SlaterB

Gast
SimpleDateFormat ist dazu begrenzt, du brauchst zwei oder vorher einen modifizierten String, z.B. immer alle Punkte entfernen,

GERMAN mag für den deutschsprachigen Raum an sich stehen, kein spezifisches Land ausgewählt,
was das aber letzlich alles bewirkt kann ich nicht sagen
Java:
Locale:
static public final Locale GERMAN = new Locale("de","","");
static public final Locale GERMANY = new Locale("de","DE","");
 

mla.rue

Bekanntes Mitglied
ist der Punkt da notwendig? Kann mich nicht erinnern, je eine Abkürzug von Monaten (bzw auch Wochentagen) mit einem Punkt gesehen zu haben.... Jan Feb Mär Apr Mai Jun Jul Aug Sep Okt Nov Dez... Mo Di Mi Do Fr Sa So... Nur so ein Gedanke halt, ein "01. Jan. ####" habe ich noch nicht gesehen.
 

Templarthelast

Bekanntes Mitglied
Java:
If(new SimpleDateFormat("MMM", Locale.GERMAN).format(date).equals("Mai")) {
// gib new SimpleDateFormat("HH:mm, d. MMM yyyy", Locale.GERMAN); aus
}else {
// gib new SimpleDateFormat("HH:mm, d. MMM. yyyy", Locale.GERMAN); aus
}
 
Zuletzt bearbeitet von einem Moderator:

Mujahiddin

Top Contributor
Ich finde den Punkt auch... fremd.

Übrigens würde ich bei der Stundenzahl nicht "HH" verwenden, sondern "kk". "HH" geht nur von 0 - 12, "kk" von 0 - 24.
Kommt natürlich darauf an, was du willst.
 

ThreadPool

Bekanntes Mitglied
[...] "01. Jan. ####" habe ich noch nicht gesehen.

Die Abkürzung des Monats ist aber korrekt, diese Abkürzungen für Monate inkl. Punkt finden sich auch so im Duden. Im Fließtext sollte der Monatsname jedoch ausgeschrieben werden. Des Weiteren ist die führende Null bei einstelligen Tagesangaben in diesem Format zu entfernen. Soweit es nach der DIN 5008 (Schreib- und Gestaltungsregeln für Textverarbeitung) festlegt. Ein "1. Jan. ####" ist also durchaus anwendbar und von mir zumindest auch schon erspäht, häufiger trifft man jedoch die Variante "1. Januar ####".
 
I

IMartin

Gast
Nur so als Möglichkeit:
Java:
String[] shortMonths = new String[]{
		"Jan.", "Feb.", "Mrz.", "Apr.", "Mai", "Jun.",
		"Jul.", "Aug.", "Sep.", "Okt.", "Nov.", "Dez."
};

SimpleDateFormat format = new SimpleDateFormat("d. MMM yyyy", Locale.GERMAN);
DateFormatSymbols symbols = format.getDateFormatSymbols();

symbols.setShortMonths(shortMonths);
format.setDateFormatSymbols(symbols);
 

tagedieb

Top Contributor
Als Alternative kann ich noch eine Regex Loesung anbieten, dabei werden alle Buchstaben, die laenger als 3 sind auf 3 Stellen gekuerzt:

Java:
		DateFormat df = new SimpleDateFormat("HH:mm, d. MMMM yyyy",	Locale.GERMAN);
		String date = df.format(new Date(112,4,1)); // 1. Mai 2012
		String newDate = date.replaceFirst("(\\p{Alpha}{3})\\p{Alpha}{1,}",	"$1.");
		System.out.println(newDate);
		date = df.format(new Date());
		newDate = date.replaceFirst("(\\p{Alpha}{3})\\p{Alpha}{1,}",	"$1.");
		System.out.println(newDate);
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A SimpleDateFormat Wochentag Monat Allgemeine Java-Themen 11
B SimpleDateFormat oder doch lieber GregorianCalendar Allgemeine Java-Themen 3
L Validierung einer Zeichenkette für SimpleDateFormat Allgemeine Java-Themen 10
E SimpleDateFormat-Konvertierung funktioniert nicht Allgemeine Java-Themen 3
Grejak Date und SimpleDateFormat Allgemeine Java-Themen 6
K SimpleDateFormat Fehler Allgemeine Java-Themen 3
T SimpleDateFormat.parse() liefert falschen Tag Allgemeine Java-Themen 2
D Klassen Zeit aus NMEA-Stream in SimpleDateFormat Allgemeine Java-Themen 17
N SimpleDateFormat: Unparseable date Allgemeine Java-Themen 5
G SimpleDateFormat Allgemeine Java-Themen 7
G SimpleDateFormat Allgemeine Java-Themen 10
H2SO3- String(pattern) von SimpleDateFormat auslesen Allgemeine Java-Themen 7
A String zu Datum parsen - SimpleDateFormat Problem Allgemeine Java-Themen 8
I SimpleDateFormat Allgemeine Java-Themen 8
P SimpleDateFormat/Date Allgemeine Java-Themen 4
RaoulDuke Problem mit SimpleDateFormat Allgemeine Java-Themen 4
E XML dateTime String in Date mit SimpleDateFormat umwandeln Allgemeine Java-Themen 5
B SimpleDateFormat fehler? Allgemeine Java-Themen 2
thE_29 SimpleDateFormat ? Allgemeine Java-Themen 14
G SimpleDateFormat Allgemeine Java-Themen 5
G SimpleDateFormat und Locale Allgemeine Java-Themen 10
N Problem mit SimpleDateFormat Allgemeine Java-Themen 14

Ähnliche Java Themen

Neue Themen


Oben