public BasicTimestampedAttributeCollection(Date timestamp) {
final GregorianCalendar cal = new GregorianCalendar();
final DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.LONG);
final DateFormat timeFormat = DateFormat.getTimeInstance(DateFormat.LONG);
cal.setTime(timestamp);
attributes.put(YearAttributeDefinition.INSTANCE.getUUID(), Integer.toString(cal.get(Calendar.YEAR)));
attributes.put(MonthOfYearNumericalAttributeDefinition.INSTANCE.getUUID(), Integer.toString(cal.get(Calendar.MONTH)));
attributes.put(DayOfMonthAttributeDefinition.INSTANCE.getUUID(), Integer.toString(cal.get(Calendar.DAY_OF_MONTH)));
attributes.put(DayOfWeekAttributeDefinition.INSTANCE.getUUID(), cal.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.LONG, Locale.getDefault()));
attributes.put(HourOfDayAttributeDefinition.INSTANCE.getUUID(), Integer.toString(cal.get(Calendar.HOUR_OF_DAY)));
attributes.put(MinuteOfHourAttributeDefinition.INSTANCE.getUUID(), Integer.toString(cal.get(Calendar.MINUTE)));
attributes.put(SecondOfMinuteAttributeDefinition.INSTANCE.getUUID(), Integer.toString(cal.get(Calendar.SECOND)));
attributes.put(LongFormatDateAttributeDefinition.INSTANCE.getUUID(), dateFormat.format(timestamp));
attributes.put(LongFormatTimeAttributeDefinition.INSTANCE.getUUID(), timeFormat.format(timestamp));
}