// Path: src/main/java/com/j256/simplemagic/endian/EndianType.java
// public enum EndianType {
// 	/** big endian, also called network byte order (motorola 68k) */
// 	BIG(new BigEndianConverter()),
// 	/** little endian (x86) */
// 	LITTLE(new LittleEndianConverter()),
// 	/** old PDP11 byte order */
// 	MIDDLE(new MiddleEndianConverter()),
// 	/** uses the byte order of the current system */
// 	NATIVE(ByteOrder.nativeOrder() == ByteOrder.BIG_ENDIAN ? BIG.getConverter() : LITTLE.getConverter()),
// 	// end
// 	;
// 
// 	private EndianConverter converter;
// 
// 	private EndianType(EndianConverter converter) {
// 		this.converter = converter;
// 	}
// 
// 	/**
// 	 * Returns the converter associated with this endian-type.
// 	 */
// 	public EndianConverter getConverter() {
// 		return converter;
// 	}
// }


import java.text.DateFormat;
import java.util.Date;
import java.util.TimeZone;
import com.j256.simplemagic.endian.EndianType;
package com.j256.simplemagic.types;



/**
 * A 4-byte value interpreted as a UNIX date in UTC timezone.
 * 
 * @author graywatson
 */
public class UtcDateType extends LocalDateType {

	private static final TimeZone UTC_TIME_ZONE = TimeZone.getTimeZone("UTC");

	public UtcDateType(EndianType endianType) {
		super(endianType);
	}

	@Override
// Path: src/main/java/com/j256/simplemagic/endian/EndianType.java
// public enum EndianType {
// 	/** big endian, also called network byte order (motorola 68k) */
// 	BIG(new BigEndianConverter()),
// 	/** little endian (x86) */
// 	LITTLE(new LittleEndianConverter()),
// 	/** old PDP11 byte order */
// 	MIDDLE(new MiddleEndianConverter()),
// 	/** uses the byte order of the current system */
// 	NATIVE(ByteOrder.nativeOrder() == ByteOrder.BIG_ENDIAN ? BIG.getConverter() : LITTLE.getConverter()),
// 	// end
// 	;
// 
// 	private EndianConverter converter;
// 
// 	private EndianType(EndianConverter converter) {
// 		this.converter = converter;
// 	}
// 
// 	/**
// 	 * Returns the converter associated with this endian-type.
// 	 */
// 	public EndianConverter getConverter() {
// 		return converter;
// 	}
// }


// Path: src/main/java/com/j256/simplemagic/types/UtcDateType.java
import java.text.DateFormat;
import java.util.Date;
import java.util.TimeZone;
import com.j256.simplemagic.endian.EndianType;

package com.j256.simplemagic.types;



/**
 * A 4-byte value interpreted as a UNIX date in UTC timezone.
 * 
 * @author graywatson
 */
public class UtcDateType extends LocalDateType {

	private static final TimeZone UTC_TIME_ZONE = TimeZone.getTimeZone("UTC");

	public UtcDateType(EndianType endianType) {
		super(endianType);
	}

	@Override
	protected Date dateFromExtractedValue(long val) {