2016-07-07 6 views
1

질문은 제목에 있습니다. 나는 쿠키 파일의 전체를 크롬으로 바꿔서 텍스트로 바꾸는 자바 프로그램을 만들고있다. 그러나 나는 인간이 인식 할 수있는 무언가에 타임 스탬프가 필요하다.Webkit/chrome 타임 스탬프 - 사람이 읽을 수있는 시간 (자바)

웹킷 시간을 사람이 읽을 수있는 시간으로 변환하는 알고리즘 또는이를 수행 할 수있는 Java 프로그램의 예는 무엇입니까?

답변

1

WebKik 및 Chrome과 같은 웹 브라우저에 사용되는 시간 스탬프 형식은 1601 년 1 월 1 일 00:00 UTC 이후 64 비트 값입니다.

알고리즘 웹킷 은밀한하기/크롬 시간은 다음과 같습니다 1970년 1월 1일 세계 협정시 00시 얀 1 ~ 마이크로 차이의 웹킷/크롬 타임 스탬프와 숫자 사이에 마이크로

  1. 계산 번호

    public LocalDateTime localDateTimeFromWebKitTimestamp(long webKitTimestamp) { 
        long epochStart = LocalDateTime 
          .from(LocalDateTime.of(1601, Month.JANUARY, 1, 0, 0)) 
          .until(LocalDateTime.of(1970, Month.JANUARY, 1, 0, 0), ChronoUnit.MICROS); 
        long delta = webKitTimestamp - epochStart; 
        return LocalDateTime.ofInstant(
          Instant.ofEpochMilli(TimeUnit.MICROSECONDS.toMillis(delta)), ZoneId.systemDefault()); 
    } 
    
    : 00:00 UTC
  2. 1601은 날짜 시간

다음으로 마이크로 변환하는 예입니다

+0

좋은 설명이지만 이것은 longs가 17 자리의 long 값을 가질 수 없기 때문에 100 % 작동하지 않습니다. 내가 BigIntegers – Xenorosth

+0

을 잘 사용하려고 시도 할 것이고,'long'은 2^63 - 1 = 9,223,372,036854775807의 최대 값을 가질 수 있는데, 이것은 19 자리입니다. 'BigInteger'를 선호한다면 괜찮습니다. – Wilson

+0

나는 여기에서 뭔가를 놓쳐 야했다. 그것은 작동하지 않았지만, 당신이 타이핑 한 어떤 "문자 그대로"의 문자는 그 뒤에 L을 입력 할 때까지 길지 않습니다. 누가 알았 겠어. – Xenorosth

관련 문제