преобразовать строку в тип даты - PullRequest
0 голосов
/ 30 марта 2012

Я хочу преобразовать строку в дату формат, но следующий способ не сработал.

Это дает null для birth.


Date  birth;
try {
   DateFormat formatter ; 
   formatter = new SimpleDateFormat("dd-MMM-yyyy");
   birth = (Date)formatter.parse(birthDate);   // birtDate is a string 
} catch (ParseException e) {
    System.out.println("Exception :"+e);
}  

Ответы [ 2 ]

2 голосов
/ 30 марта 2012

Ваш ответ правильный на деньги.Я поместил его в полную программу и протестировал.
Теперь он печатает

Default date format Fri Mar 30 00:00:00 CDT 2012
Our SimpleDateFormat 30-Mar-2012
Our SimpleDateFormat with all uppercase 30-MAR-2012

Вот несколько советов:

  • Убедитесь, что вы включаете правильный импорт,В зависимости от того, что находится в вашем classpath, вы можете случайно импортировать java.sql.Date или какой-либо другой мошеннический импорт.
  • Попробуйте распечатать содержимое birthDate перед входом в блок try и убедитесь, что оно действительно содержит строку формата dd-MMM-гггг

-

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

public class BirthDate {

    public static void main(String[] args) {
        Date birth = null;
        String birthDate = "30-MAR-2012";
        DateFormat formatter = null;
        try {
            formatter = new SimpleDateFormat("dd-MMM-yyyy");
            birth = (Date) formatter.parse(birthDate); // birtDate is a string
        }
        catch (ParseException e) {
            System.out.println("Exception :" + e);
        }
        if (birth == null) {
            System.out.println("Birth object is still null.");
        } else {
            System.out.println("Default date format " + birth);
            System.out.println("Our SimpleDateFormat " + formatter.format(birth));
            System.out.println("Our SimpleDateFormat with all uppercase " + formatter.format(birth).toUpperCase());
        }
    }
}
0 голосов
/ 30 марта 2012

Ваш код работает нормально.Если вы хотите использовать Joda Time, вы можете использовать это.Вы можете просмотреть документацию, чтобы раскрыть все функциональные возможности, если вы планируете использовать время для тестирования БД и прочего.

import org.joda.time.DateTime;
DateTime dt = new DateTime("YYYY-MM-DD");//new DateTime("2012-03-30")
System.out.println(dt);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...