Formatowanie daty

Formatowanie daty
JA
  • Rejestracja:prawie 7 lat
  • Ostatnio:około 2 lata
  • Postów:127
0

Hej,

w kursie który robię mam string jako dateOfBirth = "10/03/1990"

A nie jest to w formacie daty, którą mógłbym posortować, wyfiltrować, zrobić jakieś between w filtrze itd.

Jak zrobić datę w javie?

Pozdrowienia,
Jacek

edytowany 1x, ostatnio: Riddle
_13th_Dragon
Google: Java string to date
_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:6 dni
4

Date date = new SimpleDateFormat("dd/MM/yyyy").parse("10/03/1990");


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
JA
dziekuję Ci bardzo.
JA
  • Rejestracja:prawie 7 lat
  • Ostatnio:około 2 lata
  • Postów:127
0

Ok to zmieniłem typ na date i teraz problem bo:

Main class:

Kopiuj
import java.util.Arrays;

public class Main {

    public static void main(String[] args) {

            Person[] people = new Person[] {
                    new Person("Cleopatra", "Egypt", "69 BC", 1),
                    new Person("Alexander the Great", "Macedon", "356 BC", 2),
                    new Person("Julius Caesar", "Rome", "100 BC", 3),
                    new Person("Hannibal", "Carthage", "247 BC", 4),
                    new Person("Confucius", "China", "551 BC", 5),
                    new Person("Pericles", "Greece", "429 BC", 6),
                    new Person("Spartacus", "Thrace", "111 BC", 7),
                    new Person("Marcus Aurelius", "Rome", "121 AD", 8),
                    new Person("Leonidas", "Greece", "540 BC", 9),
                    new Person("Sun Tzu", "China", "544 BC", 10),
                    new Person("Hammurabi", "Babylon", "1750 BC", 11),
            };
            Airline airline = new Airline(people);
            for (int i = 0; i < people.length; i++) {
            if (people[i].applyPassport() == true) {
                people[i].setPassport();
                airline.createReservation(people[i]);
            }
        }
        }


    }

Person class:

Kopiuj
import java.util.Arrays;
import java.util.Date;
import java.util.Random;

public class Person {

    private String name;
    private String nationality;
    private Date dateOfBirth;
    String[] passport;
    private int seatNumber;

    public Person(String name, String nationality, Date dateOfBirth, int seatNumber){
        this.name = name;
        this.nationality = nationality;
        this.dateOfBirth = dateOfBirth;
        this.seatNumber = seatNumber;
        this.passport = new String[3];
    }

    public Person(Person source) {
        this.name = source.name;
        this.nationality = source.nationality;
        this.dateOfBirth = source.dateOfBirth;
        this.seatNumber = source.seatNumber;
        this.passport = Arrays.copyOf(source.passport, source.passport.length);
    }

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }

    public String getNationality() {
        return nationality;
    }
    public void setNationality(String nationality) {
        this.nationality = nationality;
    }

    public Date getDateOfBirth() {
        return dateOfBirth;
    }

    public void setDateOfBirth(Date dateOfBirth) {this.dateOfBirth = dateOfBirth;}

    public String[] getPassport() {
        return passport;
    }

    public void setPassport() {
            this.passport = new String[] {this.name, this.nationality, String.valueOf(this.dateOfBirth)
        };
    }

    public int getSeatNumber() {
        return seatNumber;
    }
    public void setSeatNumber(int seatNumber) {
        this.seatNumber = seatNumber;
    }

    public boolean applyPassport () {
        Random rd = new Random(); // creating Random object
        System.out.println(rd.nextBoolean());
        if (rd.nextBoolean() == false) {
            return false;
        }
        else{
            return true;
            }
        }

    public void chooseSeat () {
        Random rd = new Random(); // creating Random object
        this.seatNumber = rd.nextInt(10) + 1;
    }

    public String toString() {
        return "Name: " + this.name + "\n"
                +  "Nationality: " + this.nationality + "\n"
                +  "Date of Birth: " + this.dateOfBirth + "\n"
                +  "Seat Number: " + this.seatNumber + "\n"
                +  "Passport: " + Arrays.toString(this.passport) + "\n";
    }
}

Jak przypisać to w łatwy sposób? Najlepiej by było po prostu wpisać to jako string ale patrząc przyszłościowo nie chcę mieć textu jako daty.

Co sobie wyobrażam to stworzenie jakiejś klasy która to przerobi, może jakiejś metody?
(próbuję zaczać myśleć obiektowo :) )

Podpowiedźcie proszę,
Jacek

edytowany 1x, ostatnio: Riddle
jarekr000000
To jest zupełnie inne pytanie. Zauważ, że tu nawet nie masz daty - masz tylko rok.
ZD
  • Rejestracja:około 3 lata
  • Ostatnio:ponad rok
  • Postów:2310
5
_13th_Dragon napisał(a):

`Date date =

To jest 20 lat za Murzynami.

Od 10 lat jest java.time


If you put a million monkeys at a million keyboards, one of them will eventually write a Java program - the rest of them will write Perl
_13th_Dragon
Oooo, murzyni znali to 10 łat przed powstaniem java.time!? :D
ZD
Prawie dokładnie tak. W 90% pokrywające się w API java.time (a w 99% w koncepcji) joda.time. Wręcz java.time niewiele ponad "przyklepała" dobrze sprawdzone idee.
ZD
  • Rejestracja:około 3 lata
  • Ostatnio:ponad rok
  • Postów:2310
0
jaryszek napisał(a):

Hej,

w kursie który robię mam string jako dateOfBirth = "10/03/1990"

Rzuć ten kurs w cholerę.


If you put a million monkeys at a million keyboards, one of them will eventually write a Java program - the rest of them will write Perl
JA
  • Rejestracja:prawie 7 lat
  • Ostatnio:około 2 lata
  • Postów:127
0
ZrobieDobrze napisał(a):
_13th_Dragon napisał(a):

`Date date =

To jest 20 lat za Murzynami.

Od 10 lat jest java.time

dziekuje.

to java.time czy yoda.time?

_13th_Dragon
Po co używać obcej biblioteki kiedy masz już w standardzie?
JA
nie wiem dlatego pytam i dostaje różne odpowiedzi :) też wolę używać tego co jest w standardzie
opiszon
@jaryszek: w standardzie od jdk8 jest java.time i to powinno być używane
ZD
java.time - yoda się pojawiała w dyskusji, bardzo fajny projekt z przeszłości, gdy rdzenna java.util.Date i Calendar była zdu..na (jak mało co!), środowisko chciało czego rozsądnego
jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 2 godziny
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4707
7

Za używanie java.util.Date jest jest przewidziana kara administracyjna w postaci zainstalowania windows millenium.
Rozwiązanie z obecnej epoki:
https://mkyong.com/java8/java-8-how-to-convert-string-to-localdate/


jeden i pół terabajta powinno wystarczyć każdemu
edytowany 1x, ostatnio: jarekr000000
opiszon
Można trochę gorzej - Dev który nie patrzy na importy i używa java.sql.Date w projekcie który nie ma nic wspólnego z Sqlem. Ogólnie podpowiadanie importów w IDE i wykorzystywanie tego bezmyślnie to jedna z rzeczy która mnie triggeruje mocno. Typu - do każdej adnotacji walidacji w springu uzyję importu z innej implementacji i dorzucę do projektu 5 zależności zamiast użyć istniejącej bo intellij mi tak podpowiedział...
_13th_Dragon
Nawet sobie nie wyobrażasz ile tego jest w kodach produkcyjnych napisanych dawno (na nawet parę lat temu). Dopóki nie jest depricated ... nikt nawet palcem nie kiwni aby to zmienić.
_13th_Dragon
@opiszon, bo każdy fragment pisał ktoś inny :/
opiszon
@_13th_Dragon: no właśnie problem w tym że jeden developer. W ramach jednej zmiany która miała wprowadzić walidację pól...
opiszon
Jakby to było coś zastanego to też bym się bał ruszać bez dobrych testów. Zawsze może łapy urwać.
JA
@jarekr000000: dziekuje chyba to najlepszza odpowiedź <3
_13th_Dragon
@opiszon +1, jednak jest jeszcze jeden problem nawet jak masz również zastane testy to skąd można wiedzieć czy są dobre?
opiszon
@_13th_Dragon: prawda. Ja sobie nie ufam, co dopiero swoim kodom, nie mówiąc o cudzych testach do cudzych kodów.
K5
@jaryszek: @jarekr000000 wcale nie ma abonamentu na wersję premium googli. Jakbyś wpisał to hasło to pewnie otrzymałbyś ten link w jednej z pierwszych 3 odpowiedzi.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.