extract day from Date

后端 未结 3 1989
忘了有多久
忘了有多久 2021-02-02 12:15

I receive a timestamp from a SOAP service in milliseconds. So I do this:

Date date = new Date( mar.getEventDate() );

How can I extract the day

相关标签:
3条回答
  • 2021-02-02 12:34

    Update: The Joda-Time project is now in maintenance mode, with the team advising migration to the java.time classes. See Tutorial by Oracle.

    See the correct Answer by Ortomala Lokni, using the modern java.time classes. I am leaving this outmoded Answer intact as history.


    The Answer by Lokni is correct.

    Here is the same idea but using Joda-Time 2.8.

    long millisSinceEpoch = mar.getEventDate() ;
    DateTimeZone zone = DateTimeZone.forID( "America/Montreal" ) ;  // Or DateTimeZone.UTC
    LocalDate localDate = new LocalDate( millisSinceEpoch , zone ) ;
    int dayOfMonth = localDate.getDayOfMonth() ;
    
    0 讨论(0)
  • 2021-02-02 12:38

    Use Calendar for this:

    Calendar cal = Calendar.getInstance();
    cal.setTime(mar.getEventDate());
    int day = cal.get(Calendar.DAY_OF_MONTH);
    
    0 讨论(0)
  • 2021-02-02 12:40

    Given the Date constructor used in the question

    Date date = new Date(mar.getEventDate());
    

    The method mar.getEventDate() returns a long that represent the specified number of milliseconds since the standard base time known as "the epoch", namely January 1, 1970, 00:00:00 GMT.

    Java 8 and later

    In Java 8, you can extract the day of the month from this value, assuming UTC, with

    LocalDateTime.ofEpochSecond(mar.getEventDate(),0,ZoneOffset.UTC).getDayOfMonth();
    

    Note also that the answer given by cletus assume that mar.getEventDate() returns a Date object which is not the case in the question.

    0 讨论(0)
提交回复
热议问题