पूर्णांक दिनांक समय को वास्तविक दिनांक समय समस्या में परिवर्तित करें? जावा [डुप्लिकेट]

Aug 17 2020

इसलिए मुझे जावा में सामान्य डेटटाइम प्रारूप में इंटीगर डेटटाइम प्रारूप को परिवर्तित करने में यह समस्या है। मेरे पास यह चर int DateTime है, उदाहरण के लिए यह है: "/ Date (1484956800000) /"। और मैं इसे सामान्य तिथि समय में बदलने और स्क्रीन पर दिखाने की कोशिश कर रहा हूं ...

मैंने इस तरह की कोशिश की ..

   String dateAsText = new SimpleDateFormat("MM-dd HH:mm")
                .format(new Date(Integer.parseInt(deals.getDate_time())  * 1000L));

// setting my textView with the string dateAsText
       holder.Time.setText(dateAsText);

जवाब

1 LiveandLetLive Aug 17 2020 at 15:08

मेरा सुझाव है कि आप आउटडेटेड और एरर-प्रोन डेट-टाइम API का उपयोग करना बंद कर दें । आधुनिक दिनांक-समय API और संबंधित स्वरूपण API ( ) पर स्विच करें । ट्रेल से आधुनिक तिथि-समय API के बारे में और जानें : दिनांक समयjava.utilSimpleDateFormat java.timejava.time.format

import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;

public class Main {
    public static void main(String[] args) {
        // Obtain an instance of Instant using milliseconds from the epoch of
        // 1970-01-01T00:00:00Z
        Instant instant = Instant.ofEpochMilli(1484956800000L);
        System.out.println(instant);

        // Specify the time-zone
        ZoneId myTimeZone = ZoneId.of("Europe/London");

        // Obtain ZonedDateTime out of Instant
        ZonedDateTime zdt = instant.atZone(myTimeZone);

        // Obtain LocalDateTime out of ZonedDateTime
        // Note that LocalDateTime throws away the important information of time-zone
        LocalDateTime ldt = zdt.toLocalDateTime();
        System.out.println(ldt);

        // Custom format
        String dateAsText = ldt.format(DateTimeFormatter.ofPattern("MM-dd HH:mm"));
        System.out.println(dateAsText);
    }
}

आउटपुट:

2017-01-21T00:00:00Z
2017-01-21T00:00
01-21 00:00

यदि आप अभी भी खराब डिज़ाइन की गई विरासत का उपयोग करना चाहते हैं java.util.Date, तो आप इसे निम्नानुसार कर सकते हैं:

import java.text.SimpleDateFormat;
import java.util.Date;

public class Main {
    public static void main(String[] args) {
        Date date = new Date(1484956800000L);
        System.out.println(date);

        // Custom format
        String dateAsText = new SimpleDateFormat("MM-dd HH:mm").format(date);
        System.out.println(dateAsText);
    }
}

आउटपुट:

Sat Jan 21 00:00:00 GMT 2017
01-21 00:00