Ответ 1
Используя стандартный JDK, вы захотите использовать java.text.SimpleDateFormat
Date myDate = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd:HH-mm-ss");
String myDateString = sdf.format(myDate);
Однако, если у вас есть возможность использовать пакет Apache Commons Lang, вы можете использовать org.apache.commons.lang.time.FastDateFormat
Date myDate = new Date();
FastDateFormat fdf = FastDateFormat.getInstance("yyyy-MM-dd:HH-mm-ss");
String myDateString = fdf.format(myDate);
FastDateFormat имеет преимущество потокобезопасности, поэтому вы можете использовать один экземпляр во всем приложении. Это строго для дат форматирования и не поддерживает синтаксический анализ, как SimpleDateFormat, в следующем примере:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd:HH-mm-ss");
Date yourDate = sdf.parse("2008-09-18:22-03-15");