Issue
I have a problem in displaying the date,I am getting timestamp as 1379487711 but as per this the actual time is 9/18/2013 12:31:51 PM but it displays the time as 17-41-1970. How to show it as current time.
for displaying time I have used the following method:
private String getDate(long milliSeconds) {
// Create a DateFormatter object for displaying date in specified
// format.
SimpleDateFormat formatter = new SimpleDateFormat("dd-mm-yyyy");
// Create a calendar object that will convert the date and time value in
// milliseconds to date.
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis((int) milliSeconds);
return formatter.format(calendar.getTime());
}
Solution
private String getDate(long time) {
Calendar cal = Calendar.getInstance(Locale.ENGLISH);
cal.setTimeInMillis(time * 1000);
String date = DateFormat.format("dd-MM-yyyy", cal).toString();
return date;
}
notice that I put the time in setTimeInMillis as long and not as int, notice my date format has MM and not mm (mm is for minutes, and not months, this is why you have a value of "41" where the months should be)
for Kotlin users:
fun getDate(timestamp: Long) :String {
val calendar = Calendar.getInstance(Locale.ENGLISH)
calendar.timeInMillis = timestamp * 1000L
val date = DateFormat.format("dd-MM-yyyy",calendar).toString()
return date
}
COMMENT TO NOT BE REMOVED: Dear Person who tries to edit this post - completely changing the content of the answer is, I believe, against the conduct rules of this site. Please refrain from doing so in the future. -LenaBru
Answered By - Lena Bru
Answer Checked By - David Marino (JavaFixing Volunteer)