[java] Android에서 밀리 초를 날짜 형식으로 변환하는 방법은 무엇입니까?

밀리 초가 있습니다. 날짜 형식으로 변환해야합니다.

예:

2011 년 10 월 23 일

그것을 달성하는 방법?



답변

이 샘플 코드를 사용해보십시오 :-

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;


public class Test {

/**
 * Main Method
 */
public static void main(String[] args) {
    System.out.println(getDate(82233213123L, "dd/MM/yyyy hh:mm:ss.SSS"));
}


/**
 * Return date in specified format.
 * @param milliSeconds Date in milliseconds
 * @param dateFormat Date format
 * @return String representing date in specified format
 */
public static String getDate(long milliSeconds, String dateFormat)
{
    // Create a DateFormatter object for displaying date in specified format.
    SimpleDateFormat formatter = new SimpleDateFormat(dateFormat);

    // Create a calendar object that will convert the date and time value in milliseconds to date. 
     Calendar calendar = Calendar.getInstance();
     calendar.setTimeInMillis(milliSeconds);
     return formatter.format(calendar.getTime());
}
}

도움이 되었기를 바랍니다.


답변

밀리 초 값을 Date인스턴스로 변환하고 선택한 포맷터에 전달합니다.

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


답변

public static String convertDate(String dateInMilliseconds,String dateFormat) {
    return DateFormat.format(dateFormat, Long.parseLong(dateInMilliseconds)).toString();
}

이 함수를 호출

convertDate("82233213123","dd/MM/yyyy hh:mm:ss");


답변

DateFormat.getDateInstance().format(dateInMS);


답변

이 코드를 시도하면 도움이 될 수 있으며 필요에 맞게 수정하십시오.

SimpleDateFormat format = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");
Date d = format.parse(fileDate);


답변

마침내 나를 위해 작동하는 일반 코드를 찾았습니다.

Long longDate = Long.valueOf(date);

Calendar cal = Calendar.getInstance();
int offset = cal.getTimeZone().getOffset(cal.getTimeInMillis());
Date da = new Date();
da = new Date(longDate-(long)offset);
cal.setTime(da);

String time =cal.getTime().toLocaleString();
//this is full string        

time = DateFormat.getTimeInstance(DateFormat.MEDIUM).format(da);
//this is only time

time = DateFormat.getDateInstance(DateFormat.MEDIUM).format(da);
//this is only date


답변

tl; dr

Instant.ofEpochMilli( myMillisSinceEpoch )           // Convert count-of-milliseconds-since-epoch into a date-time in UTC (`Instant`).
    .atZone( ZoneId.of( "Africa/Tunis" ) )           // Adjust into the wall-clock time used by the people of a particular region (a time zone). Produces a `ZonedDateTime` object.
    .toLocalDate()                                   // Extract the date-only value (a `LocalDate` object) from the `ZonedDateTime` object, without time-of-day and without time zone.
    .format(                                         // Generate a string to textually represent the date value.
        DateTimeFormatter.ofPattern( "dd/MM/uuuu" )  // Specify a formatting pattern. Tip: Consider using `DateTimeFormatter.ofLocalized…` instead to soft-code the formatting pattern.
    )                                                // Returns a `String` object.

java.time

현대적인 접근 방식은 다른 모든 Answers에서 사용하는 귀찮은 이전 레거시 날짜-시간 클래스를 대체 하는 java.time 클래스를 사용합니다 .

longUTC 1970-01-01T00 : 00 : 00Z에서 1970 년 첫 순간의 epoch 참조 이후 몇 밀리 초가 있다고 가정합니다 .

Instant instant = Instant.ofEpochMilli( myMillisSinceEpoch ) ;

날짜를 얻으려면 시간대가 필요합니다. 주어진 순간에 날짜는 지역별로 전 세계적으로 다릅니다.

ZoneId z = ZoneId.of( "Pacific/Auckland" ) ;
ZonedDateTime zdt = instant.atZone( z ) ;  // Same moment, different wall-clock time.

날짜 전용 값을 추출하십시오.

LocalDate ld = zdt.toLocalDate() ;

표준 ISO 8601 형식을 사용하여 해당 값을 나타내는 문자열을 생성합니다.

String output = ld.toString() ;

사용자 지정 형식으로 문자열을 생성합니다.

DateTimeFormatter f = DateTimeFormatter.ofPattern( "dd/MM/uuuu" ) ;
String output = ld.format( f ) ;

팁 : 형식화 패턴을 하드 코딩하는 대신 java.time이 자동으로 현지화 되도록하십시오 . DateTimeFormatter.ofLocalized…방법을 사용하십시오 .


java.time 정보

java.time의 프레임 워크는 나중에 자바 8에 내장되어 있습니다. 이 클래스는 까다로운 기존에 대신 기존 과 같은 날짜 – 시간의 수업을 java.util.Date, Calendar, SimpleDateFormat.

Joda 타임 프로젝트는 지금에 유지 관리 모드 의로 마이그레이션을 조언 java.time의 클래스.

자세한 내용은 Oracle Tutorial을 참조하십시오 . 그리고 많은 예제와 설명을 위해 Stack Overflow를 검색하십시오. 사양은 JSR 310 입니다.

java.time 객체를 데이터베이스와 직접 교환 할 수 있습니다 . JDBC 4.2 이상을 준수 하는 JDBC 드라이버를 사용하십시오 . 문자열이나 클래스 가 필요하지 않습니다 .java.sql.*

java.time 클래스는 어디서 구할 수 있습니까?

ThreeTen – 추가 프로젝트 추가 클래스와 java.time를 확장합니다. 이 프로젝트는 java.time에 향후 추가 될 수있는 가능성을 입증하는 곳입니다. 당신은 여기에 몇 가지 유용한 클래스와 같은 찾을 수 있습니다 Interval, YearWeek, YearQuarter, 그리고 .