// 
// Decompiled by Procyon v0.6.0
// 

package org.bson.json;

import java.time.ZonedDateTime;
import java.time.ZoneId;
import java.time.temporal.TemporalAccessor;
import java.time.temporal.TemporalQuery;
import java.time.Instant;
import java.time.ZoneOffset;
import java.time.LocalDate;

final class DateTimeFormatter
{
    private static final int DATE_STRING_LENGTH;
    
    static long parse(final String dateTimeString) {
        if (dateTimeString.length() == DateTimeFormatter.DATE_STRING_LENGTH) {
            return LocalDate.parse(dateTimeString, java.time.format.DateTimeFormatter.ISO_LOCAL_DATE).atStartOfDay().toInstant(ZoneOffset.UTC).toEpochMilli();
        }
        return java.time.format.DateTimeFormatter.ISO_OFFSET_DATE_TIME.parse(dateTimeString, (TemporalQuery<Instant>)new TemporalQuery<Instant>() {
            @Override
            public Instant queryFrom(final TemporalAccessor temporal) {
                return Instant.from(temporal);
            }
        }).toEpochMilli();
    }
    
    static String format(final long dateTime) {
        return ZonedDateTime.ofInstant(Instant.ofEpochMilli(dateTime), ZoneId.of("Z")).format(java.time.format.DateTimeFormatter.ISO_OFFSET_DATE_TIME);
    }
    
    private DateTimeFormatter() {
    }
    
    static {
        DATE_STRING_LENGTH = "1970-01-01".length();
    }
}
