Timestamps

Every timestamp is a timezone-aware datetime in UTC, both in requests and in responses. The client converts to and from Aster's wire units for you.

Requests

Pass datetime values to any time parameter:

from datetime import datetime, timedelta, timezone

from typed_aster import Aster

async with Aster.new(public=True) as client:
  end = datetime.now(timezone.utc)
  rates = await client.futures.market.funding_rate(
    'BTCUSDT', start_time=end - timedelta(days=3), end_time=end
  )
  print(rates[0]['fundingTime'])

Responses

Response fields such as time, updateTime and E (event time) are datetime too. On the wire, most are epoch milliseconds, while a few spot and prediction account fields are epoch nanoseconds; both arrive as datetime.

Durations And Nonces

Durations stay plain integers in milliseconds, for example countdown_time on client.futures.trade.countdown_cancel_all. Request nonces are integers in epoch microseconds (see Place & Manage Orders).

Raw Helpers

The converters behind these types are in typed_aster.core, for converting values yourself:

from datetime import datetime, timezone

from typed_aster.core import timestamp_millis

millis = timestamp_millis.dump(datetime(2026, 9, 1, tzinfo=timezone.utc))
print(millis, timestamp_millis.parse(millis))