Android
Wykorzystanie czasu
Szukaj…
Konwertuj format daty na milisekundy
Aby przekonwertować datę w formacie dd / MM / rrrr na milisekundy, wywołujesz tę funkcję z danymi w postaci ciągu
public long getMilliFromDate(String dateFormat) {
Date date = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
try {
date = formatter.parse(dateFormat);
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println("Today is " + date);
return date.getTime();
}
Ta metoda konwertuje milisekundy na datę Format znacznika czasu:
public String getTimeStamp(long timeinMillies) {
String date = null;
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // modify format
date = formatter.format(new Date(timeinMillies));
System.out.println("Today is " + date);
return date;
}
Ta metoda przekształci dany dzień, miesiąc i rok na milisekundy. Będzie to bardzo pomocne podczas korzystania z Timpicker
lub Datepicker
public static long getTimeInMillis(int day, int month, int year) {
Calendar calendar = Calendar.getInstance();
calendar.set(year, month, day);
return calendar.getTimeInMillis();
}
Zwróci milisekundy od daty
public static String getNormalDate(long timeInMillies) {
String date = null;
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
date = formatter.format(timeInMillies);
System.out.println("Today is " + date);
return date;
}
Zwróci bieżącą datę
public static String getCurrentDate() {
Calendar c = Calendar.getInstance();
System.out.println("Current time => " + c.getTime());
SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
String formattedDate = df.format(c.getTime());
return formattedDate;
}
Uwaga: Java zapewnia obsługę formatu daty z wzorca daty
Aby sprawdzić w terminie
Ten przykład pomoże sprawdzić, czy podany czas jest w określonym przedziale czasowym, czy nie.
Aby sprawdzić, czy jest godzina, możemy użyć klasy DateUtils
boolean isToday = DateUtils.isToday(timeInMillis);
Aby sprawdzić czas w ciągu tygodnia,
private static boolean isWithinWeek(final long millis) {
return System.currentTimeMillis() - millis <= (DateUtils.WEEK_IN_MILLIS - DateUtils.DAY_IN_MILLIS);
}
Aby sprawdzić czas w ciągu roku,
private static boolean isWithinYear(final long millis) {
return System.currentTimeMillis() - millis <= DateUtils.YEAR_IN_MILLIS;
}
Aby sprawdzić, czy godzina przypada w ciągu jednego dnia, w tym dzisiaj,
public static boolean isWithinDay(long timeInMillis, int day) {
long diff = System.currentTimeMillis() - timeInMillis;
float dayCount = (float) (diff / DateUtils.DAY_IN_MILLIS);
return dayCount < day;
}
Uwaga: DateUtils to android.text.format.DateUtils
GetCurrentRealTime
Oblicza bieżący czas urządzenia i dodaje / odejmuje różnicę między czasem rzeczywistym a czasem urządzenia
public static Calendar getCurrentRealTime() {
long bootTime = networkTime - SystemClock.elapsedRealtime();
Calendar calInstance = Calendar.getInstance();
calInstance.setTimeZone(getUTCTimeZone());
long currentDeviceTime = bootTime + SystemClock.elapsedRealtime();
calInstance.setTimeInMillis(currentDeviceTime);
return calInstance;
}
uzyskać strefę czasową opartą na UTC.
public static TimeZone getUTCTimeZone() {
return TimeZone.getTimeZone("GMT");
}