# FastAPI Moment

***

**1. Retrieve Current Timestamp**

```python
from fastapi import FastAPI, Request
from fastapi_moment import moment

app = FastAPI()

@app.get("/")
async def root(request: Request):
    return {"now": moment.utcnow().format()}
```

**2. Format Timestamp**

```python
from fastapi_moment import moment

timestamp = "2022-05-12T15:00:00Z"
formatted = moment(timestamp).format("MMMM Do YYYY, h:mm:ss a")
```

**3. Parse Timestamp**

```python
from fastapi_moment import moment

timestamp = "May 12, 2022 at 3:00 PM"
parsed = moment.strptime(timestamp, "MMMM Do YYYY, h:mm:ss a")
```

**4. Add Duration**

```python
from fastapi_moment import moment

timestamp = "2022-05-12T15:00:00Z"
duration = moment.duration(days=2, hours=5, minutes=30)
new_timestamp = moment(timestamp).add(duration)
```

**5. Subtract Duration**

```python
from fastapi_moment import moment

timestamp = "2022-05-12T15:00:00Z"
duration = moment.duration(days=2, hours=5, minutes=30)
new_timestamp = moment(timestamp).subtract(duration)
```

**6. Compare Timestamps**

```python
from fastapi_moment import moment

timestamp1 = "2022-05-12T15:00:00Z"
timestamp2 = "2022-05-13T10:00:00Z"
comparison = moment(timestamp1) < moment(timestamp2)
```

**7. Get Day of Week**

```python
from fastapi_moment import moment

timestamp = "2022-05-12T15:00:00Z"
day_of_week = moment(timestamp).weekday()
```

**8. Get Day of Year**

```python
from fastapi_moment import moment

timestamp = "2022-05-12T15:00:00Z"
day_of_year = moment(timestamp).day_of_year()
```

**9. Get Week of Year**

```python
from fastapi_moment import moment

timestamp = "2022-05-12T15:00:00Z"
week_of_year = moment(timestamp).week_of_year()
```

**10. Convert to String**

```python
from fastapi_moment import moment

timestamp = "2022-05-12T15:00:00Z"
timestamp_string = moment(timestamp).format()
```

**11. Convert to JSON**

```python
from fastapi_moment import moment

timestamp = "2022-05-12T15:00:00Z"
timestamp_json = moment(timestamp).to_json()
```

**12. Convert to Date**

```python
import datetime
from fastapi_moment import moment

timestamp = "2022-05-12T15:00:00Z"
date = datetime.datetime.strptime(moment(timestamp).format(), "%Y-%m-%dT%H:%M:%SZ")
```

**13. Convert to Time**

```python
import datetime
from fastapi_moment import moment

timestamp = "2022-05-12T15:00:00Z"
time = datetime.datetime.strptime(moment(timestamp).format(), "%H:%M:%S")
```

**14. Convert to Timestamp**

```python
import datetime
from fastapi_moment import moment

now = moment.utcnow()
timestamp = datetime.datetime.timestamp(now.timestamp())
```

**15. Get Timezone**

```python
from fastapi_moment import moment

timestamp = "2022-05-12T15:00:00Z"
timezone = moment(timestamp).timezone()
```

**16. Set Timezone**

```python
from fastapi_moment import moment

timestamp = "2022-05-12T15:00:00Z"
moment(timestamp).tz("America/Los_Angeles")
```

**17. Convert Timezone**

```python
from fastapi_moment import moment

timestamp = "2022-05-12T15:00:00Z"
moment(timestamp).tz("America/Los_Angeles").tz("Europe/London")
```

**18. Get Timezone Offset**

```python
from fastapi_moment import moment

timestamp = "2022-05-12T15:00:00Z"
offset = moment(timestamp).utc_offset()
```

**19. Get Timezone Abbreviation**

```python
from fastapi_moment import moment

timestamp = "2022-05-12T15:00:00Z"
abbreviation = moment(timestamp).timezone_abbr()
```

**20. Get Timezone Name**

```python
from fastapi_moment import moment

timestamp = "2022-05-12T15:00:00Z"
name = moment(timestamp).timezone_name()
```

**21. Get Current User Timezone**

```python
from fastapi import Request
from fastapi_moment import moment

async def get_user_timezone(request: Request):
    return moment().in_timezone(request.client.host)
```

**22. Handle Timezone Differences in Request**

```python
from fastapi import FastAPI, Request
from fastapi_moment import moment

app = FastAPI()

@app.post("/submit")
async def submit(request: Request, data: dict):
    timestamp = data["timestamp"]
    timezone = request.client.host
    formatted_timestamp = moment(timestamp).in_timezone(timezone).format()
```

**23. Create Duration from String**

```python
from fastapi_moment import moment

duration_string = "2 days, 5 hours, 30 minutes"
duration = moment.duration(duration_string)
```

**24. Create Duration from Parts**

```python
from fastapi_moment import moment

duration = moment.duration(days=2, hours=5, minutes=30)
```

**25. Format Duration**

```python
from fastapi_moment import moment

duration = moment.duration(days=2, hours=5, minutes=30)
formatted_duration = duration.format()
```

**26. Get Duration Years**

```python
from fastapi_moment import moment

duration = moment.duration(days=730)
years = duration.years
```

**27. Get Duration Months**

```python
from fastapi_moment import moment

duration = moment.duration(days=730)
months = duration.months
```

**28. Get Duration Weeks**

```python
from fastapi_moment import moment

duration = moment.duration(days=730)
weeks = duration.weeks
```

**29. Get Duration Days**

```python
from fastapi_moment import moment

duration = moment.duration(days=730)
days = duration.days
```

**30. Get Duration Hours**

```python
from fastapi_moment import moment

duration = moment.duration(days=730)
hours = duration.hours
```

**31. Get Duration Minutes**

```python
from fastapi_moment import moment

duration = moment.duration(days=730)
minutes = duration.minutes
```

**32. Get Duration Seconds**

```python
from fastapi_moment import moment

duration = moment.duration(days=730)
seconds = duration.seconds
```

**33. Add Durations**

```python
from fastapi_moment import moment

duration1 = moment.duration(days=2, hours=5, minutes=30)
duration2 = moment.duration(days=1, hours=10, minutes=15)
total_duration = duration1 + duration2
```

**34. Subtract Durations**

```python
from fastapi_moment import moment

duration1 = moment.duration(days=2, hours=5, minutes=30)
duration2 = moment.duration(days=1, hours=10, minutes=15)
remaining_duration = duration1 - duration2
```

**35. Multiply Duration by Number**

```python
from fastapi_moment import moment

duration = moment.duration(days=2, hours=5, minutes=30)
multiplied_duration = duration * 3
```

**36. Divide Duration by Number**

```python
from fastapi_moment import moment

duration = moment.duration(days=2, hours=5, minutes=30)
divided_duration = duration / 2
```
