class DateTimeColumnType extends AbstractColumnType {

  public static final int BYTE_SIZE = 8;

  public static final DateTimeParser DEFAULT_PARSER =
      new DateTimeParser(ColumnType.LOCAL_DATE_TIME);

  private static DateTimeColumnType INSTANCE =
      new DateTimeColumnType(BYTE_SIZE, "LOCAL_DATE_TIME", "DateTime");

  private DateTimeColumnType(int byteSize, String name, String printerFriendlyName) {
    super(byteSize, name, printerFriendlyName);
  }

  public static DateTimeColumnType instance() {<FILL_FUNCTION_BODY>}

  @Override
  public DateTimeColumn create(String name) {
    return DateTimeColumn.create(name);
  }

  @Override
  public DateTimeParser customParser(ReadOptions options) {
    return new DateTimeParser(this, options);
  }

  public static long missingValueIndicator() {
    return Long.MIN_VALUE;
  }

  public static boolean valueIsMissing(long value) {
    return value == missingValueIndicator();
  }
}

    if (INSTANCE == null) {
      INSTANCE = new DateTimeColumnType(BYTE_SIZE, "LOCAL_DATE_TIME", "DateTime");
    }
    return INSTANCE;
  
<methods>public int byteSize() ,public boolean equals(java.lang.Object) ,public java.lang.String getPrinterFriendlyName() ,public int hashCode() ,public java.lang.String name() ,public java.lang.String toString() <variables>private final non-sealed int byteSize,private final non-sealed java.lang.String name,private final non-sealed java.lang.String printerFriendlyName