package seedu.task.model.task;
/**
package seedu.address.model.task;
import java.time.LocalDateTime;

import seedu.address.commons.exceptions.IllegalValueException;
**/
/**
 * Represents a Date and Time in the task list
 * Guarantees: immutable; is valid as declared in {@link #isValidDateTime(String)}
 */
/**
public class DateTime {

    public static final String MESSAGE_DATETIME_CONSTRAINTS = "Person date numbers should only contain numbers";
    //TODO: Set Regex for DateTime
    public static final String DATETIME_VALIDATION_REGEX = "\\d+";

    public final LocalDateTime value;

    /**
     * Validates given Date and Time entered by the user.
     *
     * @throws IllegalValueException if given phone string is invalid.
     */
    /**
    public DateTime(String dateTime) throws IllegalValueException {
        assert dateTime != null;
        dateTime = dateTime.trim();
        if (!isValidDateTime(dateTime)) {
            throw new IllegalValueException(MESSAGE_DATETIME_CONSTRAINTS);
        }
        //TODO: Parse DateTime?
        //this.value = dateTime;
    }

    /**
     * Returns true if a given string is a valid datetime in required format
     */
    /**
    public static boolean isValidDateTime(String test) {
        return test.matches(DATETIME_VALIDATION_REGEX);
    }

    @Override
    public String toString() {
        return value;
    }

    @Override
    public boolean equals(Object other) {
        return other == this // short circuit if same object
                || (other instanceof DateTime// instanceof handles nulls
                && this.value.equals(((DateTime) other).value)); // state check
    }

    @Override
    public int hashCode() {
        return value.hashCode();
    }

}
**/

@@ -28,44 +28,56 @@
 sk;%0A
-/**%0Apackage seedu.address.model.task
+%0Aimport java.time.Instant;%0Aimport java.util.Date
 ;%0Aim
@@ -90,26 +90,70 @@
 ava.
+u
 ti
-me.LocalDateTime
+l.List;%0A%0Aimport org.ocpsoft.prettytime.nlp.PrettyTimeParser
 ;%0A%0Ai
@@ -168,15 +168,12 @@
 edu.
-address
+task
 .com
@@ -211,19 +211,16 @@
 eption;%0A
-**/
 %0A/**%0A * 
@@ -350,20 +350,16 @@
 g)%7D%0A */%0A
-/**%0A
 public c
@@ -442,157 +442,106 @@
  = %22
-Person date numbers should only contain numbers%22;%0A    //TODO: Set Regex for DateTime%0A    public static final String DATETIME_VALIDATION_REGEX = %22%5C%5Cd+
+Date entered should be in a relatively standard form (e.g. in X hours, tomorrow, 20 Jan 2016, 5pm)
 %22;%0A%0A
@@ -561,21 +561,15 @@
 nal 
-LocalDateTime
+Instant
  val
@@ -721,32 +721,24 @@
 id.%0A     */%0A
-    /**%0A
     public D
@@ -838,33 +838,72 @@
     
-dateTime = dateTime.trim(
+List%3CDate%3E possibleDates = new PrettyTimeParser().parse(dateTime
 );%0A 
@@ -930,24 +930,29 @@
 ateTime(
-dateTime
+possibleDates
 )) %7B%0A   
@@ -1045,31 +1045,8 @@
     
-//TODO: Parse DateTime?
 %0A   
@@ -1050,18 +1050,16 @@
         
-//
 this.val
@@ -1063,24 +1063,48 @@
 value = 
-dateTime
+possibleDates.get(0).toInstant()
 ;%0A    %7D%0A
@@ -1169,47 +1169,96 @@
 date
+/
 time 
-in required format%0A     */
+that can be parsed%0A     * %0A     * @param test output from date/time parser
 %0A    
-/**
+ */
 %0A   
@@ -1296,22 +1296,26 @@
 ateTime(
-String
+List%3CDate%3E
  test) %7B
@@ -1334,46 +1334,44 @@
 urn 
+!
 test.
-matches(DATETIME_VALIDATION_REGEX
+isEmpty() && (test.size() == 1
 );%0A 
@@ -1441,16 +1441,27 @@
 rn value
+.toString()
 ;%0A    %7D%0A
@@ -1826,8 +1826,4 @@
 %0A%0A%7D%0A
-**/%0A

Add DateTime field abstraction