package org.softeg.slartus.forpdacommon;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
/**
* Created by slartus on 20.02.14.
*/
public class DateTimeExternals {
private static SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy");
private static SimpleDateFormat dateTimeFormat = new SimpleDateFormat("dd.MM.yyyy в HH:mm");
private static SimpleDateFormat parseDateTimeFormat = new SimpleDateFormat("dd.MM.yyyy, HH:mm");
/**
* Сегодня в формате dd.MM.yyyy
*
* @return
*/
public static String getTodayString() {
GregorianCalendar nowCalendar = new GregorianCalendar();
return dateFormat.format(nowCalendar.getTime());
}
public static String getDateString(Date date) {
return dateFormat.format(date);
}
public static String getDateTimeString(Date date) {
return dateTimeFormat.format(date);
}
/**
* Вчера в формате dd.MM.yyyy
*
* @return
*/
public static String getYesterdayString() {
GregorianCalendar nowCalendar = new GregorianCalendar();
nowCalendar.add(Calendar.DAY_OF_MONTH, -1);
return dateFormat.format(nowCalendar.getTime());
}
/**
* Парсит дату, которую отдаёт форум
*
* @param dateTime строка с датой, в том числе "вчера" и "сегодня"
* @param today Дата "вчера", чтобы не приходилось её в методе каждый раз в цикле брать
* @param yesterday Дата "сегодня", чтобы не приходилось её в методе каждый раз в цикле брать
* @return
* @throws java.text.ParseException
*/
public static Date parseForumDateTime(String dateTime, String today, String yesterday) throws ParseException {
try {
Date res = parseDateTimeFormat.parse(dateTime.toString().replace("Сегодня", today).replace("Вчера", yesterday));
Calendar calendar = new GregorianCalendar();
calendar.setTime(res);
int year = calendar.get(Calendar.YEAR);
if (year < 100)
calendar.set(Calendar.YEAR, 2000 + year);
return calendar.getTime();
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
}