У меня есть карта
, содержащая дату рождения человека как GregorianCalendar
.
Например:
Тип данных столбца в базе данных: DateTime
.
Как я могу получить дату рождения в формате Дата
?
Calendar calendar = ( Calendar ) thatMap.get("dateOfBirth");
Date date = calendar.getTime();
Вот пример, который вы можете использовать, чтобы протестировать его и убедиться, что он делает то, что вам нужно.
import java.util.*;
import java.text.*;
public class GetDate {
public static void main( String [] args ) {
Map map = new HashMap();
map.put("dateOfBirth", Calendar.getInstance() );
map.put("additionalFaclitiesProvided", new ArrayList() );
/// etc.
System.out.println( map );
Calendar cal = ( Calendar ) map.get("dateOfBirth");
Date date = cal.getTime();
// Addressing your comment:
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
System.out.println( "The date is: "+ sdf.format( date ) );
}
}
Вывод:
java GetDate
{dateOfBirth=java.util.GregorianCalendar[
time=1282824447050,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[
id="America/Mexico_City",offset=-21600000,dstSavings=3600000,useDaylight=true,transitions=99,lastRule=java.util.SimpleTimeZone[
id=America/Mexico_City,offset=-21600000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=3,startMonth=3,startDay=1,
startDayOfWeek=1,startTime=7200000,startTimeMode=0,endMode=2,endMonth=9,endDay=-1,endDayOfWeek=1,endTime=7200000,endTimeMode=0
]
],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2010,MONTH=7,WEEK_OF_YEAR=35,WEEK_OF_MONTH=4,DAY_OF_MONTH=26,DAY_OF_YEAR=238,DAY_OF_WEEK=5,
DAY_OF_WEEK_IN_MONTH=4,AM_PM=0,HOUR=7,HOUR_OF_DAY=7,MINUTE=7,SECOND=27,MILLISECOND=50,ZONE_OFFSET=-21600000,DST_OFFSET=3600000]**, additionalFaclitiesProvided=[]
}
Дата: 26.08.2010
От java.sql.Date
до java.util.Calendar
(или java.util.GregorianCalendar
)
Calendar cal = new GregorianCalendar();
cal.setTime(date); // java.sql.Date date;
// then set the GregorianCalendar in your map
map.put('dateOfBirth', cal);
От java.util.Calendar
до java.sql.Date
java.sql.Date date = new java.sql.Date(map.get('dateOfBirth').getTimeInMillis());
** ПРИМЕЧАНИЕ **
java.sql.Timestamp
является родственным из java.sql.Date
и оба расширяют java.util.Date
, поэтому вы можете использовать любой из них точно так же.
Кроме того, чтобы преобразовать строку даты в объект даты, используйте SimpleDateFormat :
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.US);
Date d = sdf.parse("2010-08-26 8:34:00");
Calendar cal = Calendar.getInstance();
cal.setTime(d);
И чтобы изменить ее
String dateStr1 = sdf.format(cal.getTime());
// or
String dateStr2 = sdf.format(date); // java.sql.Date / java.util.Date