Dari stempel waktu hingga Tanggal Android

Selamat siang, saya punya stempel waktu 1481709600 dan saya ingin format waktu ini Wed, 14 Dec 2016

Saya mencoba melakukannya menggunakan:

private String getDateFromTimeStamp(Integer dt) {
            Date date = new Date (dt);
            return new SimpleDateFormat("EEE MMM dd hh:mm:ss yyyy ").format(date);
}

tetapi keluaran saat ini adalah Sun Jan 18 05:35:09 GMT+02:00 1970

Saya rasa format tanggalnya salah, yang mana yang harus saya gunakan?

Terima kasih!

Pembaruan

masalahnya tanggal tahun dan bulannya salah, seharusnya 14 Des 2016 bukannya 18 Jan 1970


person VLeonovs    schedule 14.12.2016    source sumber


Jawaban (7)


Masalahnya adalah stempel waktu Anda dalam hitungan detik, jadi ubah stempel waktu Anda menjadi milidetik lalu gunakan fungsi format tanggal ...

coba yang ini ...

JAWA

 private String getDate(long time) {
        Date date = new Date(time*1000L); // *1000 is to convert seconds to milliseconds
        SimpleDateFormat sdf = new SimpleDateFormat("EEE, dd MMM yyyy "); // the format of your date
        sdf.setTimeZone(TimeZone.getTimeZone("GMT-4"));
    
        return sdf.format(date);;
    }

Kotlin

fun getDate(time:Long):String {
            var date:Date = Date(time*1000L); // *1000 is to convert seconds to milliseconds
            var sdf:SimpleDateFormat  = SimpleDateFormat("EEE, dd MMM yyyy "); // the format of your date
            sdf.setTimeZone(TimeZone.getTimeZone("GMT-4"));
    
        return sdf.format(date);
    }

Keluaran:- seperti ini Rabu, 14 Des 2016

Catatan:- EEE direpresentasikan sebagai Hari dalam Minggu,MMM direpresentasikan sebagai Bulan dalam kata-kata dan seterusnya ..

person sushildlh    schedule 14.12.2016

Anda dapat membuat kombinasi apa pun jika Anda membaca ini
Anda memerlukannya untuk menggunakan EEE, d MMM yyyy

Perbarui

SimpleDateFormat sdf = new SimpleDateFormat("EEE, d MMM yyyy");
sdf.format(new Date(1481709600));
person Salmaan    schedule 14.12.2016

format tanggalnya salah; Anda harus menggunakan

 new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z").format(date);
person gauss    schedule 14.12.2016
comment
gunakan panjang, bukan bilangan bulat - person gauss; 14.12.2016

coba ini

private String getDateFromTimeStamp(long time) {
        Calendar cal = Calendar.getInstance(Locale.ENGLISH);
        cal.setTimeInMillis(time);
        String date = DateFormat.format("EEE MMM dd hh:mm:ss yyyy ", cal).toString();
        return date;
    }
person SaravInfern    schedule 14.12.2016
comment
@VLeonovs berapa stempel waktu yang Anda lewati. kesalahan yang Anda lakukan adalah, Anda telah menggunakan nilai Integer sebagai parameter yang seharusnya tipe data long yaitu Anda yang mana mendapatkan tahun 1970, coba kode di atas dan kembalikan jika Anda mendapatkan output yang sama - person SaravInfern; 14.12.2016

Coba metode ini untuk mendapatkan data. Masukkan waktu di setTimeInMillis selama dan bukan int

private String getDate(long time) {
    Calendar cal = Calendar.getInstance(Locale.ENGLISH);
    cal.setTimeInMillis(time);
    String date = DateFormat.format("EEE MMM dd hh:mm:ss yyyy ", cal).toString();
    return date;
}
person Deepak Sachdeva    schedule 14.12.2016
comment
@VLeonovs 1481709600*1000 maka itu memberi Anda tanggal yang benar. Saya sudah menyebutkan Anda setTimeInMillis. - person Deepak Sachdeva; 14.12.2016

Anda dapat membuat metode sederhana untuk mendapatkan tanggal dari stempel waktu sebagai berikut

public String getDateCurrentTimeZone(long timestamp) {
        try {
            Calendar calendar = Calendar.getInstance();
            TimeZone tz = TimeZone.getDefault();    calendar.setTimeInMillis(timestamp * 1000);
calendar.add(Calendar.MILLISECOND,
tz.getOffset(calendar.getTimeInMillis()));
            SimpleDateFormat sdf = new SimpleDateFormat("dd MMM yyyy");
Date currenTimeZone = (Date) calendar.getTime();
return sdf.format(currenTimeZone);
} catch (Exception e) {
}
return "";
}
person Naitik    schedule 14.12.2016

Ini berfungsi untuk saya:

val currentDay = Date()
    val day = currentDay.time
    Logger.i("currentDay = $currentDay and day : $day ")

    val c = Calendar.getInstance()
    c.timeInMillis = day
    val d = c.time
    val sdf = SimpleDateFormat("dd/MM/yyyy HH:mm")

    Logger.i("meDate : ${sdf.format(d)}")
person Gama_aide    schedule 19.11.2017