[Java] java. sql. Timestamp (타임스탬프)

4094 단어 Java
java. sql. Timestamp (타임 스탬프)
상속 부류: java. util. Date
모든 실 현 된 인터페이스: Serializable, Cloneable, Comparable 
주요 구조 방법: Timestamp(long millis) 밀리초 시간 치 구조 Timestamp 대상 을 사용한다.
Timestamp 는 JDBC API 가 이 종 류 를 SQL TIMESTAMP 값 으로 표시 할 수 있 도록 합 니 다.이것 은 소수 초 에서 나 초 단위 의 정밀 도 를 허용 하 는 규범 을 통 해 SQL TIMESTAMP 소수 초 값 을 저장 하 는 능력 을 추가 합 니 다.
Timestamp 도 타임스탬프 값 을 지원 하 는 JDBC 전의 문법 을 포맷 하고 해석 하 는 능력 을 제공 합 니 다. 주로 데이터베이스 와 연 결 된 날 짜 를 작성 하 는 데 사 용 됩 니 다.
예 를 들 면:
ResultSet 에서 우리 가 자주 사용 하 는 setDate 나 getDate 의 데이터 형식 은 java. sql. Date 이 며, 평소 자바 프로그램 에 서 는 java. util. Date 를 사용 하 는 습관 이 있 습 니 다.
그러나 java. sql. Date 는 날짜 데이터 만 저장 하고 시간 데 이 터 는 저장 하지 않 습 니 다. 이러한 규범 에 맞 는 유형 은 사실 시간 분 초 를 데이터베이스 에 저장 하지 않 았 기 때문에 액세스 할 때 Timestamp 의 setTimestamp () 와
getTimestamp()。
정리 1: String -- > Timestamp: 
Timestamp 를 String 으로 변환 하면 직접. toString () 을 사용 할 수 있 지만, 작은 숫자 뒤의 밀리초 값 이 필요 하지 않 을 때 도 있 습 니 다. DateFormat 을 통 해 String 으로 변환 할 때 형식 을 다시 정의 해 야 합 니 다.
Timestamp 의 value Of () 방법 을 사용 하여, 
Timestamp time= new Timestamp(System.currentTimeMillis());//         
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String timeStr = df.format(time); 
time = Timestamp.valueOf(timeStr); 
System.out.println(time);//2017-05-06 15:54:21.0 

정리 2: java. util. Date -- > Timestamp
방법 1: Timestamp 의 구조 방법 을 사용 합 니 다.
Date date = new Date();
Timestamp ts = new Timestamp(date.getTime());

방식 2:
메모: 부모 클래스 는 하위 클래스 로 직접 전환 할 수 없습니다. 중간 String 을 사용 하고 format 의 형식 은 Timestamp 의 문자열 형식 과 일치 해 야 합 니 다.
java.lang.IllegalArgumentException: Timestamp format must be yyyy-mm-dd hh:mm:ss[.fffffffff]
Date date = new Date();  
DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
String dateStr = sdf.format(date);
Timestamp ts = Timestamp.valueOf(dateStr); //2017-05-06 15:54:21.0 

정리 3:
구조 방법 을 통 해 Timestamp 대상 을 만 들 고 밀리초 값 을 얻 는 방법 은 다음 과 같은 세 가지 가 있 습 니 다.
방법 1:
System.currentTimeMillis(); 
방법 2:
Calendar.getInstance().getTimeInMillis(); 
방법 3: 
new Date().getTime();
테스트 증명: System. currentTimeMillis () 이런 방식 이 속도 가 가장 빠르다
Calendar. getInstance (). getTimeInMillis () 는 시간 대 문 제 를 처리 하 는 데 시간 이 많이 걸 리 기 때문에 속도 가 가장 느리다.
그래서 첫 번 째 방식 을 많이 사용 하 는 것 을 권장 합 니 다.
주의: 그리니치 평균 시간 그리니치 표준 시간
. Net 에서 발생 하 는 시간 은 모두 현재 시간 대의 현재 시간 이 고 자바 의 currentTimeMillis () 방법 은 GMT 에 비해 얻 은 시간 입 니 다.
중국 이 있 는 시간 대 는 + 8 구 이기 때문에 시간 이 8 시간 차이 가 납 니 다!
 
방법 요약   boolean after(Timestamp ts)            이 Timestamp 대상 이 주어진 Timestamp 대상 보다 늦 었 는 지 표시 합 니 다.   boolean before(Timestamp ts)            이 Timestamp 대상 이 주어진 Timestamp 대상 보다 빠 른 지 알려 줍 니 다.   int compareTo(Date o)            이 Timestamp 대상 을 주어진 Date (Timestamp 대상 이 어야 함) 와 비교 합 니 다.   int compareTo(Timestamp ts)            이 Timestamp 대상 을 주어진 Timestamp 대상 과 비교 합 니 다.   boolean equals(Object ts)            이 대상 이 주어진 Timestamp 대상 과 같 는 지 테스트 합 니 다.   boolean equals(Timestamp ts)            이 Timestamp 대상 이 주어진 Timestamp 대상 과 같 는 지 테스트 합 니 다.   int getNanos()            이 Timestamp 대상 의 nanos 값 을 가 져 옵 니 다.   long getTime()            이 Timestamp 대상 이 표시 한 1970 년 1 월 1 일 00: 00: 00 GMT 이후 밀리초 수 를 되 돌려 줍 니 다.   void setNanos(int n)            이 Timestamp 대상 의 nanos 필드 를 주어진 값 으로 설정 합 니 다.   void setTime(long time)            이 Timestamp 대상 을 설정 하여 1970 년 1 월 1 일 00: 00: 00 GMT 이후 time 밀리초 의 시간 을 표시 합 니 다.   String toString()            JDBC 타임 스탬프 전의 형식 으로 타임 스탬프 를 편성 합 니 다.  static Timestamp valueOf(String s)            JDBC 타임스탬프 전의 형식 을 사용 하 는 String 대상 을 Timestamp 값 으로 변환 합 니 다. 
인 스 턴 스 코드:
tLotteryAnnouncement.setDateTime(new Timestamp(System.currentTimeMillis()));
if(StringUtils.isNotBlank(tIsusesKj.getOpenTime())){
    tLotteryAnnouncement.setOpenTime(Timestamp.valueOf(tIsusesKj.getOpenTime()));
}else{
    tLotteryAnnouncement.setOpenTime(new Timestamp(tIsusesKj.getModifyDate().getTime()));
}

좋은 웹페이지 즐겨찾기