package com.vaguehope.onosendai.util;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.concurrent.TimeUnit;
import android.content.Context;
public final class DateHelper {
protected static final long ONE_DAY_MILLIS = TimeUnit.DAYS.toMillis(1);
private DateHelper () {
throw new AssertionError();
}
public static DateFormat standardDateTimeFormat () {
return new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss", Locale.ENGLISH);
}
public static String formatDateTime (final Context context, final long timeMillis) {
final Date date = new Date(timeMillis);
return String.format("%s %s",
android.text.format.DateFormat.getDateFormat(context).format(date),
android.text.format.DateFormat.getTimeFormat(context).format(date));
}
public static class FriendlyDateTimeFormat {
private final DateFormat dateFormat;
private final DateFormat timeFormat;
public FriendlyDateTimeFormat (final Context context) {
this.dateFormat = android.text.format.DateFormat.getDateFormat(context);
this.timeFormat = android.text.format.DateFormat.getTimeFormat(context);
}
public String format (final long now, final long time) {
final Date date = new Date(time);
final String sT = this.timeFormat.format(date);
if (now - time < ONE_DAY_MILLIS) return sT;
return String.format("%s %s", this.dateFormat.format(date), sT);
}
}
public static String formatDurationSeconds (final long seconds) {
if (seconds >= 3600) {
return String.format(Locale.ENGLISH, "%d:%02d:%02d", seconds / 3600, (seconds % 3600) / 60, (seconds % 60));
}
return String.format(Locale.ENGLISH, "%d:%02d", (seconds % 3600) / 60, (seconds % 60));
}
public static String formatDurationMillis (final long millis) {
return formatDurationSeconds(TimeUnit.MILLISECONDS.toSeconds(millis));
}
}