How can I get current date in Android?

AndroidDateSimpledateformatAndroid Date

Android Problem Overview


I wrote the following code

Date d = new Date();
CharSequence s  = DateFormat.format("MMMM d, yyyy ", d.getTime());

I want the current date in string format, like

28-Dec-2011

so that I can set it into a TextView.

Android Solutions


Solution 1 - Android

You can use the SimpleDateFormat class for formatting date in your desired format.

Just check this link where you get an idea for your example.

For example:

String dateStr = "04/05/2010"; 
 
SimpleDateFormat curFormater = new SimpleDateFormat("dd/MM/yyyy"); 
Date dateObj = curFormater.parse(dateStr); 
SimpleDateFormat postFormater = new SimpleDateFormat("MMMM dd, yyyy"); 
 
String newDateStr = postFormater.format(dateObj); 

Update:

The detailed example is here, I would suggest you go through this example and understand the concept of SimpleDateFormat class.

Final Solution:

Date c = Calendar.getInstance().getTime();
System.out.println("Current time => " + c);

SimpleDateFormat df = new SimpleDateFormat("dd-MMM-yyyy", Locale.getDefault());
String formattedDate = df.format(c);

Solution 2 - Android

Its simple one line code for get current Date in this yyyy-MM-dd format you can use your format that you want :

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

Solution 3 - Android

This is nothing to do with android as it is java based so you could use

private String getDateTime() { 
   DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
   Date date = new Date(); 
   return dateFormat.format(date); 
}

Solution 4 - Android

 public String giveDate() {
	Calendar cal = Calendar.getInstance();
	SimpleDateFormat sdf = new SimpleDateFormat("EEE, MMM d, yyyy");
	return sdf.format(cal.getTime());
 }

Solution 5 - Android

try this,

SimpleDateFormat timeStampFormat = new SimpleDateFormat("yyyyMMddHHmmssSS");
Date myDate = new Date();
String filename = timeStampFormat.format(myDate);

Solution 6 - Android

CharSequence s  = DateFormat.getDateInstance().format("MMMM d, yyyy ");

You need an instance first

Solution 7 - Android

Works like a charm and converts to String as a bonus ;)

SimpleDateFormat currentDate = new SimpleDateFormat("dd/MM/yyyy");
      Date todayDate = new Date();
    String thisDate = currentDate.format(todayDate);

Solution 8 - Android

 String date = new SimpleDateFormat("yyyy-MM-dd").format(new Date());

// import Date class as java.util

Solution 9 - Android

A simple tweak to Paresh's solution:

Date date = Calendar.getInstance().getTime();
SimpleDateFormat df = new SimpleDateFormat("dd-MMM-yyyy");
String formattedDate = df.format(date);

Solution 10 - Android

SimpleDateFormat df = new SimpleDateFormat("dd-MMM-yyyy");
String date = df.format(Calendar.getInstance().getTime());

Solution 11 - Android

The below code displays the both time and date

Calendar cal = Calendar.getInstance();
cal.getTime().toString();

Solution 12 - Android

 public static String getcurrentDateAndTime(){

        Date c = Calendar.getInstance().getTime();
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd");
        String formattedDate = simpleDateFormat.format(c);
        return formattedDate;
    }

// String currentdate=  getcurrentDateAndTime();

Solution 13 - Android

I am providing the modern answer.

java.time and ThreeTenABP

To get the current date:

	LocalDate today = LocalDate.now(ZoneId.of("America/Hermosillo"));

This gives you a LocalDate object, which is what you should use for keeping a date in your program. A LocalDate is a date without time of day.

Only when you need to display the date to a user, format it into a string suitable for the user’s locale:

	DateTimeFormatter userFormatter
			= DateTimeFormatter.ofLocalizedDate(FormatStyle.LONG);
	System.out.println(today.format(userFormatter));

When I ran this snippet today in US English locale, output was:

> July 13, 2019

If you want it shorter, specify FormatStyle.MEDIUM or even FormatStyle.SHORT. DateTimeFormatter.ofLocalizedDate uses the default formatting locale, so the point is that it will give output suitable for that locale, different for different locales.

If your user has very special requirements for the output format, use a format pattern string:

	DateTimeFormatter userFormatter = DateTimeFormatter.ofPattern(
			"d-MMM-u", Locale.forLanguageTag("ar-AE"));

> 13-يول-2019

I am using and recommending java.time, the modern Java date and time API. DateFormat, SimpleDateFormat, Date and Calendar used in the question and/or many of the other answers, are poorly designed and long outdated. And java.time is so much nicer to work with.

Question: Can I use java.time on Android?

Yes, java.time works nicely on older and newer Android devices. It just requires at least Java 6.

  • In Java 8 and later and on newer Android devices (from API level 26) the modern API comes built-in.
  • In Java 6 and 7 get the ThreeTen Backport, the backport of the modern classes (ThreeTen for JSR 310; see the links at the bottom).
  • On (older) Android use the Android edition of ThreeTen Backport. It’s called ThreeTenABP. And make sure you import the date and time classes from org.threeten.bp with subpackages.

Solution 14 - Android

This method can use for to get current date from the system.

public static String getCurrentDateAndTime(){
    Date c = Calendar.getInstance().getTime();
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd");
    String formattedDate = simpleDateFormat.format(c);
    return formattedDate;
}

Solution 15 - Android

Calendar cal = Calendar.getInstance();		
Calendar dt = Calendar.getInstance(); 
dt.clear();
dt.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),cal.get(Calendar.DATE));	
return dt.getTime();		

Solution 16 - Android

Calendar c = Calendar.getInstance();
int day = c.get(Calendar.DAY_OF_MONTH);
int month = c.get(Calendar.MONTH);
int year = c.get(Calendar.YEAR);
String date = day + "/" + (month + 1) + "/" + year;

Log.i("TAG", "--->" + date);

Solution 17 - Android

You can use following code to get a date in the format you want.

String date = String.valueOf(android.text.format.DateFormat.format("dd-MM-yyyy", new java.util.Date()));

Solution 18 - Android

Date c = Calendar.getInstance().getTime();
System.out.println("Current time => " + c);

SimpleDateFormat df = new SimpleDateFormat("dd-MMM-yyyy");
String formattedDate = df.format(c);

This one is the best answer...

Solution 19 - Android

just one line code to get simple Date format :

SimpleDateFormat.getDateInstance().format(Date())

output : 18-May-2020

SimpleDateFormat.getDateTimeInstance().format(Date())

output : 18-May-2020 11:00:39 AM

SimpleDateFormat.getTimeInstance().format(Date())

output : 11:00:39 AM

Hope this answer is enough to get this Date and Time Format ... :)

Solution 20 - Android

if you just want to get the date just put code like this

Calendar.getInstance().getTime();

Solution 21 - Android

Tried with this approch it worked for me.

val df = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ", Locale.getDefault()) // pass the format pattern that you like and done.
println(df.format(Date()))

Solution 22 - Android

The simplest way to get the current date in current locale (device locale!) :

String currentDate = DateFormat.getDateInstance().format(Calendar.getInstance().getTime());

If you want to have the date in different styles use getDateInstance(int style):

DateFormat.getDateInstance(DateFormat.FULL).format(Calendar.getInstance().getTime());

Other styles: DateFormat.LONG, DateFormat.DATE_FIELD, DateFormat.DAY_OF_YEAR_FIELD, etc. (use CTRL+Space to see all of them)

If you need the time too:

String currentDateTime = DateFormat.getDateTimeInstance(DateFormat.DEFAULT,DateFormat.LONG).format(Calendar.getInstance().getTime());

Solution 23 - Android

  public static String getDateTime() {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MMMM dd, yyyy HH:mm:ss", Locale.getDefault());
        Date date = new Date();
        return simpleDateFormat.format(date);
    }

Solution 24 - Android

try with this link of code this is absolute correct answer for all cases all over date and time. or customize date and time as per need and requirement of app.

try with this link .try with this link

Solution 25 - Android

I wrote calendar app using CalendarView and it's my code:

CalendarView cal = (CalendarView) findViewById(R.id.calendar);
cal.setDate(new Date().getTime());

'calendar' field is my CalendarView. Imports:

import android.widget.CalendarView;
import java.util.Date;

I've got current date without errors.

Solution 26 - Android

This is the code i used:

             Date date = new Date();  // to get the date
             SimpleDateFormat df = new SimpleDateFormat("dd-MM-yyyy"); // getting date in this format
             String formattedDate = df.format(date.getTime());
             text.setText(formattedDate);

Solution 27 - Android

I've already used this:

Date What_Is_Today=Calendar.getInstance().getTime();
SimpleDateFormat Dateformat = new SimpleDateFormat("dd-MM-yyyy");
String Today=Dateformatf.format(What_Is_Today);

Toast.makeText(this,Today,Toast.LENGTH_LONG).show();

at first I get time, then I declared a Simple Date Format (to get date like: 19-6-2018) then I use format to change date to string.

Solution 28 - Android

In Kotlin

https://www.programiz.com/kotlin-programming/examples/current-date-time

fun main(args: Array<String>) {

val current = LocalDateTime.now()

val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS")
val formatted = current.format(formatter)

println("Current Date and Time is: $formatted")}

Solution 29 - Android

In Kotlin you can use this code : - 

Simple only need to change date format to this "dd-MM-yyyy" 
val d = Date()
val str: CharSequence = DateFormat.format("dd-MM-yyyy", d.getTime())
Log.e("", str.toString())
    
In Java You use this code: - 
    
Date date = new Date();
CharSequence str  = DateFormat.format("dd-MM-yyyy", date.getTime());
Log.e("Date", str.toString())

Solution 30 - Android

This is the code I used:

final Calendar c = Calendar.getInstance();
year = c.get(Calendar.YEAR);
month = c.get(Calendar.MONTH);
day = c.get(Calendar.DAY_OF_MONTH);

// Set current date into textview
tvDisplayDate.setText(new StringBuilder()
    .append(month + 1).append("-") // Month is 0 based, add 1
    .append(day).append("-")
    .append(year).append("   Today is :" + thursday ) );

// Set current date into datepicker
dpResult.init(year, month, day, null);

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionChatar Veer SutharView Question on Stackoverflow
Solution 1 - AndroidParesh MayaniView Answer on Stackoverflow
Solution 2 - AndroidPratik ButaniView Answer on Stackoverflow
Solution 3 - AndroidGraham SmithView Answer on Stackoverflow
Solution 4 - AndroidKamalView Answer on Stackoverflow
Solution 5 - AndroidLuciferView Answer on Stackoverflow
Solution 6 - AndroidMarthyn OlthofView Answer on Stackoverflow
Solution 7 - AndroidSoVincebleView Answer on Stackoverflow
Solution 8 - Androidarshad shaikhView Answer on Stackoverflow
Solution 9 - AndroidcNgambaView Answer on Stackoverflow
Solution 10 - AndroidZeeshan AliView Answer on Stackoverflow
Solution 11 - AndroidRajeswari KotikalapudiView Answer on Stackoverflow
Solution 12 - Androidindrajeet jyotiView Answer on Stackoverflow
Solution 13 - AndroidOle V.V.View Answer on Stackoverflow
Solution 14 - AndroidKavindu DissanayakeView Answer on Stackoverflow
Solution 15 - AndroidVinayakView Answer on Stackoverflow
Solution 16 - AndroidrhaldarView Answer on Stackoverflow
Solution 17 - AndroidAndroid DevView Answer on Stackoverflow
Solution 18 - AndroidFatimaView Answer on Stackoverflow
Solution 19 - Androidvijay sainiView Answer on Stackoverflow
Solution 20 - AndroidVanya RachelView Answer on Stackoverflow
Solution 21 - AndroidRatnesh NavlakheView Answer on Stackoverflow
Solution 22 - AndroidIvo StoyanovView Answer on Stackoverflow
Solution 23 - AndroidDivyesh PatelView Answer on Stackoverflow
Solution 24 - AndroidAmitsharmaView Answer on Stackoverflow
Solution 25 - AndroidMuskovetsView Answer on Stackoverflow
Solution 26 - AndroidSavita SharmaView Answer on Stackoverflow
Solution 27 - AndroidFarshid AhmadiView Answer on Stackoverflow
Solution 28 - AndroidcreativecoderView Answer on Stackoverflow
Solution 29 - AndroidSafal BhatiaView Answer on Stackoverflow
Solution 30 - AndroiddondondonView Answer on Stackoverflow