10

I do not know what is wrong with code below -

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    TextView tv = (TextView) findViewById(R.id.textView1);

    String dt;
    Date cal = (Date) Calendar.getInstance().getTime();
    dt = cal.toLocaleString();
    tv.setText(dt.toString());

}
Bill the Lizard
  • 398,270
  • 210
  • 566
  • 880
user1492748
  • 101
  • 1
  • 1
  • 4

10 Answers10

30

I suggest:

long date = System.currentTimeMillis(); 

SimpleDateFormat sdf = new SimpleDateFormat("MMM MM dd, yyyy h:mm a");
String dateString = sdf.format(date);   
tvDisplayDate.setText(dateString);

which displays in the following example format

Mon Jan 5, 2009 4:55 PM

You can use whatever format you want - options can be found at Oracle

Roy Hinkley
  • 10,111
  • 21
  • 80
  • 120
15

use this code:

tvDisplayDate = (TextView) findViewById(R.id.tvDate);


    final Calendar c = Calendar.getInstance();
    yy = c.get(Calendar.YEAR);
    mm = c.get(Calendar.MONTH);
    dd = c.get(Calendar.DAY_OF_MONTH);

    // set current date into textview
    tvDisplayDate.setText(new StringBuilder()
    // Month is 0 based, just add 1
            .append(yy).append(" ").append("-").append(mm + 1).append("-")
            .append(dd));
SubbaReddy PolamReddy
  • 2,083
  • 2
  • 17
  • 23
5

Below solution might help -

final Calendar c = Calendar.getInstance();
mYear = c.get(Calendar.YEAR);
mMonth = c.get(Calendar.MONTH);
mDay = c.get(Calendar.DAY_OF_MONTH);

updateDisplay();

private void updateDisplay() {
    mDateDisplay.setText(
        new StringBuilder()
        // Month is 0 based so add 1
        .append(mMonth + 1).append("-")
        .append(mDay).append("-")
        .append(mYear).append(" "));
}
Smamatti
  • 3,901
  • 3
  • 32
  • 43
Raghunandan
  • 132,755
  • 26
  • 225
  • 256
3

Consider using a TextClock as it will handle updates for you. For more info here is the documentation Docs . AnalogClock and DigitalClock can also be useful if your objective is just to display current time and date

 <TextClock
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="30sp"
    android:format24Hour="MMM,yyyy\n\thh:mm"/>
2
    TextView tv = (TextView) findViewById(R.id.textView1);
    SimpleDateFormat dfDate_day= new SimpleDateFormat("E, dd/MM/yyyy HH:mm:ss");
    String dt="";
    Calendar c = Calendar.getInstance(); 
    data=dfDate_day.format(c.getTime());
    tv.setText(dt);
Ram kiran Pachigolla
  • 20,897
  • 15
  • 57
  • 78
2
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_HHmmss");
String currentDateandTime = sdf.format(new Date());
tv.setText(currentDateandTime);

this is the way how i do it

Amit Hooda
  • 2,133
  • 3
  • 23
  • 37
1

note*:

import java.text.DateFormat;
import java.util.Date;

// Donot import "import java.sql.Date;"

TextView tv = (TextView) findViewById(R.id.textView1);
String ct = DateFormat.getDateInstance().format(new Date());
tv.setText(ct);
Jesse
  • 8,605
  • 7
  • 47
  • 57
1

if you want to generate a toast which is displaying current time on a button click then use this code.

bt.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            Calendar c = Calendar.getInstance();
            hour = c.get(Calendar.HOUR_OF_DAY);
            min = c.get(Calendar.MINUTE);
            int ds = c.get(Calendar.AM_PM);
            if(ds==0)
            AM_PM="pm";
            else
            AM_PM="am";

            Toast.makeText(MainActivity.this, ""+hour+":"+min+AM_PM, Toast.LENGTH_SHORT).show();


        }
    });
0
Calendar c = Calendar.getInstance();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formattedDate = df.format(c.getTime());
System.out.println("Currrent Date Time : "+formattedDate);
shubomb
  • 672
  • 7
  • 20
-1
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");    
String currentDateandTime = sdf.format(new Date());    
tv.setText(currentDateandTime);
Ori Dar
  • 18,687
  • 5
  • 58
  • 72
Ganesan J
  • 539
  • 7
  • 12