type_bridge.attribute.datetime¶
datetime
¶
DateTime attribute type for TypeDB.
DateTime
¶
Bases: Attribute
DateTime attribute type that accepts naive datetime values.
This maps to TypeDB's 'datetime' type, which does not include timezone information.
Example
class CreatedAt(DateTime): pass
Usage with naive datetime¶
event = Event(created_at=CreatedAt(datetime(2024, 1, 15, 10, 30, 45)))
Convert to DateTimeTZ¶
aware_dt = created_at.add_timezone() # Implicit: add system timezone aware_dt_utc = created_at.add_timezone(timezone.utc) # Explicit: add UTC
Initialize DateTime attribute with a datetime value.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
datetime
|
The datetime value to store |
required |
Source code in type_bridge/attribute/datetime.py
add_timezone
¶
Convert DateTime to DateTimeTZ by adding timezone information.
Implicit conversion (tz=None): Add system/local timezone Explicit conversion (tz provided): Add specified timezone
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
tz
|
timezone | None
|
Optional timezone to add to the naive datetime. If None, uses system local timezone (astimezone()). If provided, uses that specific timezone. |
None
|
Returns:
| Type | Description |
|---|---|
DateTimeTZ
|
DateTimeTZ instance with timezone-aware datetime |
Example
Implicit: add system timezone¶
aware = naive_dt.add_timezone()
Explicit: add UTC timezone¶
from datetime import timezone aware_utc = naive_dt.add_timezone(timezone.utc)
Explicit: add JST (+9) timezone¶
from datetime import timezone, timedelta jst = timezone(timedelta(hours=9)) aware_jst = naive_dt.add_timezone(jst)
Source code in type_bridge/attribute/datetime.py
__add__
¶
Add a Duration to this DateTime.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
other
|
Any
|
A Duration to add to this datetime |
required |
Returns:
| Type | Description |
|---|---|
DateTime
|
New DateTime with the duration added |
Example
from type_bridge import Duration dt = DateTime(datetime(2024, 1, 31, 14, 0, 0)) duration = Duration("P1M") result = dt + duration # DateTime(2024-02-28 14:00:00)