How to get current time and date in Android How to get current time and date in Android android android

How to get current time and date in Android


You could use:

import java.util.CalendarDate currentTime = Calendar.getInstance().getTime();

There are plenty of constants in Calendar for everything you need.

Check the Calendar class documentation.


You can (but no longer should - see below!) use android.text.format.Time:

Time now = new Time();now.setToNow();

From the reference linked above:

The Time class is a faster replacement for the java.util.Calendar and java.util.GregorianCalendar classes. An instance of the Time class represents a moment in time, specified with second precision.


NOTE 1:It's been several years since I wrote this answer,and it is about an old, Android-specific and now deprecated class.Google now says that"[t]his class has a number of issues and it is recommended that GregorianCalendar is used instead".


NOTE 2: Even though the Time class has a toMillis(ignoreDaylightSavings) method, this is merely a convenience to pass to methods that expect time in milliseconds. The time value is only precise to one second; the milliseconds portion is always 000. If in a loop you do

Time time = new Time();   time.setToNow();Log.d("TIME TEST", Long.toString(time.toMillis(false)));... do something that takes more than one millisecond, but less than one second ...

The resulting sequence will repeat the same value, such as 1410543204000, until the next second has started, at which time 1410543205000 will begin to repeat.


If you want to get the date and time in a specific pattern you can use the following:

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault());String currentDateandTime = sdf.format(new Date());

Or,

Date:

String currentDate = new SimpleDateFormat("dd-MM-yyyy", Locale.getDefault()).format(new Date());

Time:

String currentTime = new SimpleDateFormat("HH:mm:ss", Locale.getDefault()).format(new Date());