Datetime

SurrealDB datetime values map to Java's java.time.ZonedDateTime. The SDK handles conversion automatically when deserializing query results into Value objects or POJOs.

Value methods

.isDateTime()

Checks if the value is a datetime.

Method Syntax

value.isDateTime()

Returns: boolean

.getDateTime()

Returns the datetime as a ZonedDateTime.

Method Syntax

value.getDateTime()

Returns: java.time.ZonedDateTime

POJO mapping

When using typed methods, datetime fields in your POJO should be declared as ZonedDateTime.

import java.time.ZonedDateTime;

public class Event {
public RecordId id;
public String title;
public ZonedDateTime createdAt;

public Event() {}
}

Optional<Event> event = db.select(Event.class, new RecordId("event", "conf"));
ZonedDateTime when = event.get().createdAt;

Example

Working with datetime values

import com.surrealdb.Surreal;
import com.surrealdb.Response;
import com.surrealdb.Value;
import com.surrealdb.signin.RootCredential;
import java.time.ZonedDateTime;

try (Surreal db = new Surreal()) {
db.connect("ws://localhost:8000");
db.useNs("surrealdb").useDb("docs");
db.signin(new RootCredential("root", "root"));

Response response = db.query("RETURN time::now()");
Value result = response.take(0);

if (result.isDateTime()) {
ZonedDateTime now = result.getDateTime();
}
}

See Also