{"library":"pyrfc3339","code":"from datetime import datetime, timezone, timedelta\nfrom pyrfc3339 import generate, parse\n\n# Get current UTC time and generate RFC 3339 string\nnow_utc = datetime.now(timezone.utc)\nprint(f\"Current UTC: {now_utc.isoformat()}\")\nrfc3339_timestamp = generate(now_utc)\nprint(f\"Generated RFC 3339: {rfc3339_timestamp}\")\n\n# Parse an RFC 3339 timestamp\nparsed_dt_utc = parse('2009-01-01T10:01:02Z')\nprint(f\"Parsed UTC: {parsed_dt_utc}\")\n\n# Parse with an offset\nparsed_dt_offset = parse('2009-01-01T14:01:02-04:00')\nprint(f\"Parsed with offset: {parsed_dt_offset}\")\n\n# Example of generating from a naive datetime (requires accept_naive=True)\ntry:\n    generate(datetime(2023, 1, 1, 12, 0, 0))\nexcept ValueError as e:\n    print(f\"Expected error for naive datetime: {e}\")\n\nnaive_as_utc = generate(datetime(2023, 1, 1, 12, 0, 0), accept_naive=True)\nprint(f\"Generated from naive (as UTC): {naive_as_utc}\")","lang":"python","description":"Demonstrates how to generate RFC 3339 timestamps from timezone-aware `datetime` objects and parse RFC 3339 strings back into `datetime` objects, including handling of naive datetimes for generation.","tag":null,"tag_description":null,"last_tested":"2026-04-24","results":[{"runtime":"python:3.10-alpine","exit_code":0},{"runtime":"python:3.10-slim","exit_code":0},{"runtime":"python:3.11-alpine","exit_code":0},{"runtime":"python:3.11-slim","exit_code":0},{"runtime":"python:3.12-alpine","exit_code":0},{"runtime":"python:3.12-slim","exit_code":0},{"runtime":"python:3.13-alpine","exit_code":0},{"runtime":"python:3.13-slim","exit_code":0},{"runtime":"python:3.9-alpine","exit_code":0},{"runtime":"python:3.9-slim","exit_code":0}]}