Daty i czas: Klasa java.text.DateFormat (2)
Artykuł wieloczęściowy:
Klasa java.text.DateFormat (2)
DateFormat.getDateTimeInstance()
Metoda DateFormat.getDateTimeInstance()
Zwraca
Metoda
Opis
DateFormat
DateFormat.getDateTimeInstance()
Zwraca obiekt formatujący datę i czas w stylach domyślnych dla domyślnej lokalizacji
package dt10.java_text_dateformat;
import java.text.*;
import java.util.*;
class Listing069 {
public static void main(String[] args) {
Date date = new Date();
DateFormat df1 = DateFormat.getDateTimeInstance();
String df1s = df1.format(date);
System.out.println("df1s: " + df1s);
}
}
df1s: 7 paź 2018, 15:11:31
DateFormat.getDateTimeInstance(int dateStyle, int timeStyle)
Metoda DateFormat.getDateTimeInstance(int dateStyle, int timeStyle)
Zwraca
Metoda
Opis
DateFormat
DateFormat.getDateTimeInstance(int dateStyle, int timeStyle)
Zwraca obiekt formatujący datę i czas w podanych stylach dla domyślnej lokalizacji
package dt10.java_text_dateformat;
import java.text.*;
import java.util.*;
class Listing070 {
public static void main(String[] args) {
Date date = new Date();
DateFormat df1 = DateFormat.getDateTimeInstance(DateFormat.FULL,
DateFormat.FULL);
String s1 = df1.format(date);
System.out.println("s1: " + s1);
DateFormat df2 = DateFormat.getDateTimeInstance(DateFormat.LONG,
DateFormat.LONG);
String s2 = df2.format(date);
System.out.println("s2: " + s2);
DateFormat df3 = DateFormat.getDateTimeInstance(DateFormat.MEDIUM,
DateFormat.MEDIUM);
String s3 = df3.format(date);
System.out.println("s3: " + s3);
DateFormat df4 = DateFormat.getDateTimeInstance(DateFormat.SHORT,
DateFormat.SHORT);
String s4 = df4.format(date);
System.out.println("s4: " + s4);
}
}
s1: niedziela, 7 października 2018 15:15:46 czas środkowoeuropejski letni
s2: 7 października 2018 15:15:46 CEST
s3: 7 paź 2018, 15:15:46
s4: 07.10.2018, 15:15
DateFormat.getDateTimeInstance(int dateStyle, int timeStyle, Locale aLocale)
Metoda DateFormat.getDateTimeInstance(int dateStyle, int timeStyle, Locale aLocale)
Zwraca
Metoda
Opis
DateFormat
DateFormat.getDateTimeInstance(int dateStyle, int timeStyle, Locale aLocale)
Zwraca obiekt formatujący datę i czas w podanych stylach dla podanej lokalizacji
package dt10.java_text_dateformat;
import java.text.*;
import java.util.*;
class Listing071 {
public static void main(String[] args) {
Date date = new Date();
DateFormat df1 = DateFormat.getDateTimeInstance(DateFormat.FULL,
DateFormat.FULL, new Locale("PL" ));
String s1 = df1.format(date);
System.out.println("s1: " + s1);
DateFormat df2 = DateFormat.getDateTimeInstance(DateFormat.FULL,
DateFormat.FULL, new Locale("ES" ));
String s2 = df2.format(date);
System.out.println("s2: " + s2);
}
}
s1: niedziela, 7 października 2018 15:20:27 czas środkowoeuropejski letni
s2: domingo, 7 de octubre de 2018, 15:20:27 (hora de verano de Europa central)
format(Object obj)
Metoda format(Object obj)
Zwraca
Metoda
Opis
String
format(Object obj)
Odziedziczona po klasie Format. To samo co format(obj, new StringBuffer(), new FieldPosition(0)).toString(). Formatuje obiekt w postaci daty i czasu
package dt10.java_text_dateformat;
import java.text.*;
import java.util.*;
class Listing072 {
public static void main(String[] args) {
DateFormat df1 = DateFormat.getDateTimeInstance(DateFormat.FULL,
DateFormat.FULL, new Locale("PL" ));
String str1 = df1.format(123456789L );
System.out.println("str1: " + str1);
}
}
str1: piątek, 2 stycznia 1970 11:17:36 czas środkowoeuropejski standardowy
format(Date)
Metoda format(Date)
Zwraca
Metoda
Opis
String
format(Date)
Formatuje datę i czas do postaci stringu
package dt10.java_text_dateformat;
import java.text.*;
import java.util.*;
class Listing073 {
public static void main(String[] args) {
Date date = new Date();
DateFormat df1 = DateFormat.getDateTimeInstance(DateFormat.FULL,
DateFormat.FULL, new Locale("PL" ));
String str = df1.format(date);
System.out.println("str: " + str);
}
}
str: niedziela, 7 października 2018 15:35:40 czas środkowoeuropejski letni
format(Object, StringBuffer, FieldPosition)
Metoda format(Object, StringBuffer, FieldPosition)
Zwraca
Metoda
Opis
StringBuffer
format(Object obj, StringBuffer toAppendTo, FieldPosition fieldPosition)
Przekształca obiekt do postaci obiektu StringBuffer
package dt10.java_text_dateformat;
import java.text.*;
import java.util.*;
class Listing074 {
public static void main(String[] args) {
Long d = 1479296742156L ;
System.out.println("d: " + d);
DateFormat df1 = DateFormat.getDateTimeInstance(DateFormat.FULL,
DateFormat.FULL, new Locale("PL" ));
StringBuffer sb = new StringBuffer();
FieldPosition ff = new FieldPosition(DateFormat.MONTH_FIELD);
sb = df1.format(d, sb, ff);
System.out.println("sb: " + sb.toString());
int a = ff.getBeginIndex();
int b = ff.getEndIndex();
System.out.println("a :" + a + ", b: " + b);
}
}
d: 1479296742156
sb: środa, 16 listopada 2016 12:45:42 czas środkowoeuropejski standardowy
a :10, b: 19
format(Date, StringBuffer, FieldPosition)
Metoda format(Date, StringBuffer, FieldPosition
Zwraca
Metoda
Opis
StringBuffer
format(Date date, StringBuffer toAppendTo, FieldPosition fieldPosition
Metoda abstrakcyjna. To samo co metoda poprzednia, ale dla obiektu Date
package dt10.java_text_dateformat;
import java.text.*;
import java.util.*;
class Listing075 {
public static void main(String[] args) {
Date date = new Date();
DateFormat df1 = DateFormat.getDateTimeInstance(DateFormat.FULL,
DateFormat.FULL, new Locale("PL" ));
StringBuffer sb = new StringBuffer();
FieldPosition ff = new FieldPosition(DateFormat.MONTH_FIELD);
sb = df1.format(date, sb, ff);
System.out.println("sb: " + sb.toString());
int a = ff.getBeginIndex();
int b = ff.getEndIndex();
System.out.println("a: " + a + ", b: " + b);
}
}
sb: niedziela, 7 października 2018 15:54:02 czas środkowoeuropejski letni
a: 13, b: 25
formatToCharacterIterator(Object)
Metoda formatToCharacterIterator(Object)
Zwraca
Metoda
Opis
AttributedCharacterIterator
formatToCharacterIterator(Object obj)
Odziedziczona po klasie Format. Umożliwia iterację po łańcuchu znaków i wyszukiwanie atrybutów
package dt10.java_text_dateformat;
import java.text.*;
import java.util.*;
class Listing076{
public static void main(String[] args) {
Date date = new Date();
DateFormat df = DateFormat.getDateTimeInstance(DateFormat.FULL,
DateFormat.FULL, new Locale("PL" ));
AttributedCharacterIterator aci = df.formatToCharacterIterator(date);
for (char c = aci.first(); c != CharacterIterator.DONE; c = aci.next()){
System.out.print(c);
}
System.out.println();
//-
Date date1 = new Date();
DateFormat df1 = DateFormat.getDateTimeInstance(DateFormat.FULL,
DateFormat.FULL, new Locale("PL" ));
AttributedCharacterIterator aci1 = df1.formatToCharacterIterator(date1);
for (char c = aci1.first(); c != CharacterIterator.DONE; c = aci1
.next()){
if (aci1.getAttribute(DateFormat.Field.MONTH) != null ){
System.out.println(aci1.getAttribute(DateFormat.Field.MONTH));
System.out.println(
"start: " + aci1.getRunStart(DateFormat.Field.MONTH));
System.out.println(
"end: " + aci1.getRunLimit(DateFormat.Field.MONTH));
break ;
}
}
}
}
niedziela, 7 października 2018 16:01:38 czas środkowoeuropejski letni
java.text.DateFormat$Field(month)
start: 13
end: 25
parse(String)
Metoda parse(String)
Zwraca
Metoda
Opis
Date
parse(String source)
Parsuje tekst od początku i zwraca obiekt Date
parse(String, ParsePosition)
Metoda parse(String, ParsePosition)
Zwraca
Metoda
Opis
Date
parse(String source, ParsePosition pos)
Parsuje tekst z uwzględnieniem pozycji parsowania
parseObject(String, ParsePosition)
Metoda parseObject(String, ParsePosition)
Zwraca
Metoda
Opis
Object
parseObject(String source, ParsePosition pos)
Parsuje tekst i zwraca obiekt.
package dt10.java_text_dateformat;
import java.text.*;
import java.util.*;
class Listing077 {
public static void main(String[] args) {
Date date = new Date();
DateFormat df1 = DateFormat.getDateTimeInstance();
String df1s = df1.format(date);
System.out.println("df1s: " + df1s);
Date date1 = null ;
try {
date1 = df1.parse(df1s);
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println("date1: " + date1);
Date date2 = df1.parse(df1s, new ParsePosition(0 ));
System.out.println("date2: " + date2);
Date ob = (Date) df1.parseObject(df1s, new ParsePosition(0 ));
System.out.println("ob: " + ob);
}
}
df1s: 7 paź 2018, 16:12:54
date1: Sun Oct 07 16:12:54 CEST 2018
date2: Sun Oct 07 16:12:54 CEST 2018
ob: Sun Oct 07 16:12:54 CEST 2018
DateFormat clone()
Klonuje obiekt. Bez przykładu.
boolean equals(Object)
Sprawdza równość tego obiektu z podanym. Bez przykładu.
int hashCode()
Zwraca kod haszujący dla tego obiektu. Bez przykładu.
DateFormat.getAvailableLocales()
Metoda DateFormat.getAvailableLocales()
Zwraca
Metoda
Opis
Locale[]
DateFormat.getAvailableLocales()
Zwraca tablicę dostępnych lokalizacji
getCalendar()
Metoda getCalendar()
Zwraca
Metoda
Opis
Calendar
getCalendar()
Zwraca kalendarz związany z obiektem DateFormat
setCalendar(Calendar)
Metoda setCalendar(Calendar)
Zwraca
Metoda
Opis
void
setCalendar(Calendar newCalendar)
Ustawia kalendarz na podany
getTimeZone()
Metoda getTimeZone()
Zwraca
Metoda
Opis
TimeZone
getTimeZone()
Zwraca strefę czasową związaną z obiektem DateFormat
setTimeZone(TimeZone)
Metoda setTimeZone(TimeZone)
Zwraca
Metoda
Opis
void
setTimeZone(TimeZone zone)
Ustawia strefę czasową dla obiektu DateFormat
isLenient()
Metoda isLenient()
Zwraca
Metoda
Opis
boolean
isLenient()
Sprawdza czy parsowanie daty/czasu będzie w trybie lenient
setLenient(boolean)
Metoda setLenient(boolean)
Zwraca
Metoda
Opis
void
setLenient(boolean isLenient)
Ustala czy data/czas będzie parsowana w trybie lenient czy nie.
getNumberFormat()
Metoda getNumberFormat()
Zwraca
Metoda
Opis
NumberFormat
getNumberFormat()
Zwraca formatowanie liczb, którego ten obiekt DateFormat używa do formatowania i parsowania czasu
setNumberFormat(NumberFormat)
Metoda setNumberFormat(NumberFormat)
Zwraca
Metoda
Opis
void
setNumberFormat(NumberFormat newNumberFormat)
Zmienia obiekt formatowania liczb używany przy parsowaniu i formatowaniu czasu.
package dt10.java_text_dateformat;
import java.text.*;
import java.util.*;
class Listing078 {
public static void main(String[] args) {
DateFormat df1 = DateFormat.getDateTimeInstance();
System.out.println("df1: " + df1);
//-
Locale[] locs = DateFormat.getAvailableLocales();
System.out.println(locs[100 ]);
df1.setCalendar(new GregorianCalendar());
Calendar cal = df1.getCalendar();
System.out.println("cal: " + cal);
SimpleTimeZone stz = new SimpleTimeZone(3600000 , "Europe/Warsaw" ,
Calendar.MARCH, -1 , Calendar.SUNDAY, 7200000 ,
SimpleTimeZone.WALL_TIME, Calendar.OCTOBER, -1 , Calendar.SUNDAY,
10800000 , SimpleTimeZone.WALL_TIME, 3600000 );
stz.setStartYear(1996 );
df1.setTimeZone(stz);
TimeZone tz = df1.getTimeZone();
System.out.println("tz: " + tz);
df1.setLenient(true );
boolean len = df1.isLenient();
System.out.println("len: " + len);
NumberFormat nf = df1.getNumberFormat();
System.out.println(((DecimalFormat) nf).toPattern());
df1.setNumberFormat(new DecimalFormat());
}
}
df1: java.text.SimpleDateFormat@c56f517e
no_NO_NY
cal: java.util.GregorianCalendar[time=1538923639631,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Europe/Belgrade",offset=3600000,dstSavings=3600000,useDaylight=true,transitions=119,lastRule=java.util.SimpleTimeZone[id=Europe/Belgrade,offset=3600000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=2,startMonth=2,startDay=-1,startDayOfWeek=1,startTime=3600000,startTimeMode=2,endMode=2,endMonth=9,endDay=-1,endDayOfWeek=1,endTime=3600000,endTimeMode=2]],firstDayOfWeek=2,minimalDaysInFirstWeek=4,ERA=1,YEAR=2018,MONTH=9,WEEK_OF_YEAR=40,WEEK_OF_MONTH=1,DAY_OF_MONTH=7,DAY_OF_YEAR=280,DAY_OF_WEEK=1,DAY_OF_WEEK_IN_MONTH=1,AM_PM=1,HOUR=4,HOUR_OF_DAY=16,MINUTE=47,SECOND=19,MILLISECOND=631,ZONE_OFFSET=3600000,DST_OFFSET=3600000]
tz: java.util.SimpleTimeZone[id=Europe/Warsaw,offset=3600000,dstSavings=3600000,useDaylight=true,startYear=1996,startMode=2,startMonth=2,startDay=-1,startDayOfWeek=1,startTime=7200000,startTimeMode=0,endMode=2,endMonth=9,endDay=-1,endDayOfWeek=1,endTime=10800000,endTimeMode=0]
len: true
###0
package dt10.java_text_dateformat;
import java.text.*;
import java.util.*;
class Listing079 {
public static void main(String[] args) {
Date date1 = new Date();
DateFormat df1 = DateFormat.getDateTimeInstance(DateFormat.FULL,
DateFormat.FULL, new Locale("PL" ));
AttributedCharacterIterator aci1 = df1.formatToCharacterIterator(date1);
for (char c = aci1.first(); c != CharacterIterator.DONE; c = aci1
.next()) {
if (aci1.getAttribute(DateFormat.Field.MONTH) != null ) {
DateFormat.Field a = (DateFormat.Field) aci1
.getAttribute(DateFormat.Field.MONTH);
System.out.println(a);
int b = a.getCalendarField();
System.out.println(b);
DateFormat.Field d = DateFormat.Field.ofCalendarField(b);
System.out.println(d);
break ;
}
}
}
}
java.text.DateFormat$Field(month)
2
java.text.DateFormat$Field(month)
2019-06-06 09:22:00