Convert from Long to date format

前端 未结 6 1054
暗喜
暗喜 2020-12-14 06:01

I want to convert Long value to String or Date in this format dd/mm/YYYY.

I have this value in Long format: 1343805819061.

It is possible to convert it to Da

相关标签:
6条回答
  • 2020-12-14 06:21

    if thre is 10 digits in long then try this

    long DateInLong= 1584212400;

    Date date = new Date(DateInLong*1000L);

    SimpleDateFormat simpledateformate= new SimpleDateFormat("yyyy-MM-dd");

    String DATE = simpledateformate.format(date);

    0 讨论(0)
  • 2020-12-14 06:26

    You can use method setTime on the Date instance or the contructor Date(long);

    setTime(long time) 
          Sets this Date object to represent a point in time that is time milliseconds after January 1, 1970 00:00:00 GMT.
    
    Date(long date) 
          Allocates a Date object and initializes it to represent the specified number of milliseconds since the standard base time known as "the epoch", namely January 1, 1970, 00:00:00 GMT
    

    Then use the simple date formater

    see http://docs.oracle.com/javase/1.4.2/docs/api/javax/swing/text/DateFormatter.html

    0 讨论(0)
  • 2020-12-14 06:31

    java.time and ThreeTenABP

    I am providing the modern answer. I suggest using java.time, the modern Java date and time API, for your date work. This will work on your Android version:

        // Take Catalan locale as an example for the demonstration
        DateTimeFormatter dateFormatter
                = DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM)
                        .withLocale(Locale.forLanguageTag("ca"));
    
        long millisecondsSinceEpoch = 1_343_805_819_061L;
        ZonedDateTime dateTime = Instant.ofEpochMilli(millisecondsSinceEpoch)
                .atZone(ZoneId.systemDefault());
        String dateString = dateTime.format(dateFormatter);
        System.out.println("As formatted date: " + dateString);
    

    Output is:

    As formatted date: 01/08/2012

    I recommend that you use a built-in localized date format for presentation to your user. I took Catalan date format just as an example. Formats for many languages, countries and dialects are built-in.

    The SimpleDateFormat class used in most of the old answers is a notorious troublemaker of a class. The Date class also used is poorly designed too. Fortunately they are both long outdated. It’s no longer recommended to use any of those. And I just find java.time so much nicer to work with.

    Question: Doesn’t java.time require Android API level 26?

    java.time works nicely on both 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 non-Android 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.

    Links

    • Oracle tutorial: Date Time explaining how to use java.time.
    • Java Specification Request (JSR) 310, where java.time was first described.
    • ThreeTen Backport project, the backport of java.time to Java 6 and 7 (ThreeTen for JSR-310).
    • ThreeTenABP, Android edition of ThreeTen Backport
    • Question: How to use ThreeTenABP in Android Project, with a very thorough explanation.
    0 讨论(0)
  • 2020-12-14 06:35
    java.util.Date dateObj = new java.util.Date(timeStamp);
    

    Here timeStamp is your long integer which is actually timestamp in millieseconds, you get the java date object, now you can convert it into string by this

    SimpleDateFormat dateformatYYYYMMDD = new SimpleDateFormat("yyyyMMdd");
    SimpleDateFormat dateformatMMDDYYYY = new SimpleDateFormat("MMddyyyy");
    
    StringBuilder nowYYYYMMDD = new StringBuilder( dateformatYYYYMMDD.format( dateObj ) );
    StringBuilder nowMMDDYYYY = new StringBuilder( dateformatMMDDYYYY.format( dateObj ) );
    
    0 讨论(0)
  • You can use below line of code to do this. Here timeInMilliSecond is long value.

     String dateString = new SimpleDateFormat("MM/dd/yyyy").format(new Date(TimeinMilliSeccond));
    

    Or you can use below code too also.

     String longV = "1343805819061";
     long millisecond = Long.parseLong(longV);
     // or you already have long value of date, use this instead of milliseconds variable.
     String dateString = DateFormat.format("MM/dd/yyyy", new Date(millisecond)).toString();
    

    Reference:- DateFormat and SimpleDateFormat

    P.S. Change date format according to your need.

    0 讨论(0)
  • 2020-12-14 06:45
        public String getDuration(long msec) {
            if (msec == 0)
                return "00:00";
            long sec = msec / 1000;
            long min = sec / 60;
            sec = sec % 60;
            String minstr = min + "";
            String secstr = sec + "";
            if (min < 10)
                minstr = "0" + min;
            if (sec < 10)
                secstr = "0" + sec;
            return minstr + ":" + secstr;
        }
    
    0 讨论(0)
提交回复
热议问题