data

background image

java
/data

1

Data



class java.util.Date

daty rozpoczynaj si od epoki UNIXowej tj. 1.01.1970


Date d = new Date();
System.out.println(d); // == System.out.println(d.toString());

// Fri Apr 08 22:31:55 CEST 2005




class java.util.Calendar

jest to klasa abstrakcyjna

metoda Calendar.getInstance() zwraca obiekt klasy potomnej
odpowiadaj cy ustawieniom lokalnym czyli w Europie i
Ameryce: GregorianCalendar


System.out.println(Calendar.getInstance().getTime());

// Fri Apr 08 22:31:55 CEST 2005


samo Calendar.getInstance() odda wszystkie wewn trzne
informacje o stanie klasy i nie jest u yteczne

cz sto u ywa si potomka tej klasy: GregorianCalendar




class java.text.DateFormat

klasa abstrakcyjna

pozwala wy wietla dat i czas w zadanym formacie

cz sto u ywa si potomka tej klasy: SimpleDateFormat


import java.util.Date;
import java.text.DateFormat;

Date d = new Date();
SimpleDateFormat f = new SimpleDateFormat ("E yyyy.MM.dd
'godz.' hh:mm:ss a zzz");
System.out.println("Po sformatowaniu: " + f.format(d));

// Po sformatowaniu: Pt 2005.04.08 godz. 10:47:09 PM CEST

background image

java
/data

2


symbol

znaczenie

sposób

prezentacji

przykład

G

era

tekst

AD

y

rok

liczba

2002

M

miesi c

tekst/liczba luty / 02

d

dzie

liczba

15

h

godzina (12)

liczba

6

H

godzina (24)

liczba

18

m

minuta

liczba

30

s

sekunda

liczba

43

S

milisekunda

liczba

234

E

dzie tygodnia

tekst

niedziela

D

dzie roku

liczba

324

F

dzie tygodnia w
miesi cu

liczba

3 (trzecia niedziela
wrze nia)

w

tydzie roku

liczba

37

W

tydzie miesi ca

liczba

3

a

oznaczenie
A.M./P.M.

tekst

PM

k

godzina dnia (1-
24)

liczba

12

K

godzina dnia w
form. 12g (0-11)

liczba

0

z

strefa czasowa

tekst

Central European
Summer Time

oznaczenie tekstu ogranicznik

‘’

pojedynczy znak
apostrofu

litera



je li w tabeli jest „tekst”:
podanie 4 lub wi cej liter pełna nazwa,
podanie mniejszej liczby skrót (je li istnieje)
np. E Pn, EEEE Poniedziałek


je li w tabeli jest „liczba”:
liczba powtórze znaku minimalna liczba wy wietlanych cyfr
(je li liczba jest mniejsza to zera na pocz tku)
np. yy 04, yyyy 2004


je li w tabeli jest tekst/liczba:
MM 09, MMM wrz, MMMM wrzesie



background image

java
/data

3


ustawianie konkretnej daty i czasu


//1
GregorianCalendar d1 = new GregorianCalendar(1986, 05, 05);
// 5 maja 1986
GregorianCalendar d2= new GregorianCalendar(); // bie

ca data

Calendar d3= Calendar.getInstance(); // bie

ca data

System.out.println("Wtedy był " + d1.getTime());
System.out.println("Teraz jest " + d2.getTime());
System.out.println("Teraz jest te " + d3.getTime());

// Wtedy był Thu Jun 05 00:00:00 CEST 1986
// Teraz jest Fri Apr 08 23:23:13 CEST 2005

// Teraz jest te Fri Apr 08 23:23:13 CEST 2005



//2
d3.set(Calendar.YEAR, 1915);
d3.set(Calendar.MONTH, Calendar.APRIL);
d3.set(Calendar.DAY_OF_MONTH, 12);
System.out.println("D3 przypisano dat " + d3.getTime());

// d3 przypisano dat Mon Apr 12 23:28:45 CET 1915




zamiana ła cucha znaków na dat


public static void main(String[] args) {
SimpleDateFormat f = new SimpleDateFormat ("yyyy-MM-dd");
String in = args.length == 0 ? "1818-11-11" : args[0];
System.out.print("Ła cuch "+in+" został przetworzony na ");
Date t;
try { t = f.parse(in);
System.out.println(t); }
catch (ParseException e) {
System.out.println("Nie da si prztworzy danych w oparciu
o format: " + f);
// Ła cuch 1818-11-11 został przetworzony na
// Wed Nov 11 00:00:00 CET 1818








background image

java
/data

4

zamiana ła cucha znaków na dat – data stanowi tylko cz

ła cucha u y substring()


SimpleDateFormat f = new SimpleDateFormat ("yyyy-MM-dd");
String in[] = { "ur. 1913-10-01 Vancouver, B.C.",
"zm. 1948-03-01 Ottawa, ON"};

for (int i=0; i<in.length; i++) {
String aLine = in[i];
String action;

switch(aLine.charAt(0)) {
case 'u': action = "Data urodzenia"; break;
case 'z': action = "Data mierci"; break;
default: System.err.println("Bł dy kod w wierszu: " + aLine);
continue;
}

int p = aLine.indexOf(' '); //znajdzie odstep po .
ParsePosition pp = new ParsePosition(p);
//ta klasa słu y do sledzenia miejsca kursora

Date d = f.parse(aLine, pp); //skonwertuje date
if (d == null) {
System.err.println("Niepoprawna data w wierszu " + aLine);
continue; }

String location = aLine.

substring(pp.getIndex());

//pobierze nazwe miasta, ktora jest po dacie

System.out.println(action + " " + d + " w " + location); }

// Data urodzenia Wed Oct 01 00:00:00 CET 1913 w
// Vancouver, B.C.

// Data mierci Mon Mar 01 00:00:00 CET 1948 w
// Ottawa, ON


milisekundy na daty


long now = System.currentTimeMillis();
System.out.println("Przetwarzamy " + Long.toHexString(now) + "
--> " + new java.util.Date(now));

// Przetwarzamy 10328d82837 --> Sat Apr 09 23:23:04 CEST 2005


background image

java
/data

5

odejmowanie/dodawanie dat


//1
Date now = new Date();
long t = now.getTime();
t -= 700*24*60*60*1000;
Date then = new Date(t);
System.out.println("Siedemset dni temu był: " + then);

// Siedemset dni temu był: Tue Apr 05 22:21:30 CEST 2005



//2
Calendar now = Calendar.getInstance();
SimpleDateFormat f = new SimpleDateFormat ("E yyyy.MM.dd
'godz.' hh:mm:ss a zzz");
System.out.println("Dzi jest " + f.format(now.getTime()));

// Dzi jest So 2005.04.09 godz. 11:45:36 PM CEST


now.add(Calendar.DAY_OF_YEAR, - (365 * 2));
System.out.println("Ponad dwa lata temu był: " +
f.format(now.getTime()));

// Ponad dwa lata temu był:

// Cz 2003.04.10 godz. 11:45:36 PM CEST



//3 odst p od roku 2000

Date d1 = new GregorianCalendar(1999,11,31,23,59).getTime();

//poczatek roku2000

Date d2 = new Date(); //data dzisiejsza
// wyra amy ka d z dat w formie milisekund i odejmujemy

long diff = d1.getTime() - d2.getTime();
System.out.println("Ró nica wynosi " + (diff /
(1000*60*60*24)) + " dni.");

// Ró nica wynosi -1925 dni.


porównywanie dat


DateFormat df = new SimpleDateFormat ("yyyy-MM-dd");
Date d1 = df.parse(“2004-10-14”);
Date d2 = df.parse(“2003-04-05”);
String relation;
if (d1.equals(d2)) relation = "to ta sama data co";
else if (d1.before(d2)) relation = "wypada przed";
else relation = "wypada po";
System.out.println(d1 + " " + relation + " " + d2);

// Thu Oct 14 00:00:00 CEST 2004 wypada po

// Sat Apr 05 00:00:00 CEST 2003

background image

java
/data

6

okre lenie numeru dnia itp. wyznaczonego przez dat


stałe z klasy

java.util.Calendar, które mo na u y :

ERA, YEAR, MONTH, WEEK_OF_YEAR, WEEK_OF_MONTH, DATE,
DAY_OF_MONTH, DAY_OF_YEAR, DAY_OF_WEEK, DAY_OF_WEEK_IN_MONTH,
AM_PM, HOUR, HOUR_OF_DAY, MINUTE, SECOND, MILLISECOND,
ZONE_OFFSET, DST_OFFSET (przesuni cie czasu letniego i
zimowego)


Calendar c = new GregorianCalendar();
Date timeNow = new Date();
c.setTime(timeNow); // ustawiamy dat i czas w kalendarzu
System.out.println("bie

cy tydzie roku: " +

c.get(Calendar.WEEK_OF_YEAR));


// bie

cy tydzie roku: 14


Wyszukiwarka

Podobne podstrony:
CW2006EX Mill Turn data sheet web
3 Data Plotting Using Tables to Post Process Results
PAT DS 350 Graphic Modular GM Service Data
An%20Analysis%20of%20the%20Data%20Obtained%20from%20Ventilat
Homework Data Structures
cx5500 data sheet enus
Data 09 Święto Niepodległości, Scenariusze i hospitacje - praktyki
auto data 2010pl 789069998 ID6c9Y
drivers data tab 1
MAXTOR DiamondMax 10, diamondmax 10 data sheet
Data 18. 03 Dorastanie zwierząt, Scenariusze i hospitacje - praktyki
08 Data exodusu w ujęciu Świadków Jehowy, Drogi prowadzace do Boga, Zestaw o SJ (www dodane pl), Zes
Data 11.03 Uczucia brzydkiego kaczątka, Scenariusze i hospitacje - praktyki
Data 02 Nazwy drzew, Scenariusze i hospitacje - praktyki
GPS Vector data(2), gik, semestr 4, satelitarna, Satka, Geodezja Satelitarna, Kozowy folder
1 3 Getting started with Data Studio Lab
Obama Data wyjścia z Iraku pozostaje bez zmian (22 07 2009)
PAT DS 350 G & GW Service Data
Dodatkowe Wytyczne projektu, Data mining - Grzenda

więcej podobnych podstron