Отображение даты рождения в Java с помощью Date Util - PullRequest
1 голос
/ 27 мая 2010

Я тестирую класс Person, который моделирует человека с именем, адресом и датой рождения. Как мне установить доб (дата рождения)?
Вот мой класс Person:

import java.util.Date;
public class Person{  
    private String name;   
    private String address;  
    private Date dob;  


    public Person( ){
        name = null;
        address = null;  
        dob = null;
    }

    public Person(String nameValue, String newAddress, Date newDob){  
        name = nameValue;
        address = newAddress;
        dob = newDob;  
    }


    public String getName(){
        return name;
    }

    public void setName(String nameValue){
        name = nameValue;
    }

    public int getAddress(){
        return address;
    }

    public void setAddress(String newAddress){
        address = newAddress;
    }

    public int getDateOfBirth(){
        return dob;
    }

    public void setDateOfBirth(Date newDob){
        dob = newDob;
    }

    public void print(){
        System.out.println("Name: " + name);  
        System.out.println ("Date Of Birth: " + dob);  
        System.out.println ("Address: " + address);
    }

}   


PersonTester{    
  Person a = new Person();  
  a.setName("John Smith");
  a.setDateOfBirth (01/08/1985);??? - doesn't work

Ответы [ 3 ]

4 голосов
/ 27 мая 2010

Если у вас есть поля в виде чисел, вы можете использовать объект Calendar для создания даты.

import java.util.Calendar;

// class definition here, etc...

    Calendar cal = Calendar.getInstance();
    cal.set(1985, 1, 8); // Assumes MM/dd/yyyy
    //cal.set(1985, 8, 1); // Assumes dd/MM/yyyy
    // cal.getTime() returns a Date object
    a.setDateOfBirth(cal.getTime());

Если это текст в формате, который вы указали ранее, вместо этого вы можете сделать это:

import java.text.SimpleDateFormat;

String dateString = "01/08/1985";

// class definition here, etc...

    formatter = new SimpleDateFormat("MM/dd/yyyy");
    // formatter = new SimpleDateFormat("dd/MM/yyyy");

    a.setDateOfBirth(formatter.parse(dateString));
2 голосов
/ 27 мая 2010

Проверьте этот учебник о том, как разобрать строку как дату

1 голос
/ 27 мая 2010

Вам нужно либо передать объект, похожий на дату, либо строку, которая будет проанализирована. Похоже, вы передаете целочисленное выражение (которое оценивается в 0).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...