Question: I have input like:

```
(1, (a, b, c))
(2, (e, f, g))

```

The output I expected is like:

```
(1, a)
(1, b)
(1, c)
(2, e)
(2, f)
(2, g)

```

Answer: 
You can specify the timezone you want from `now()` like the following:

`current_time = datetime.datetime.now(launch_time.tzinfo)`

Then your subtraction should work, as both of the times will be timezone aware.

Edit: I should note that you can put whatever timezone object you want in `now()` and it will work just fine. `now()` will convert the time to whatever timezone you pass. The important part is to simply ensure that if you're adding/subtracting datetime objects that they both have timezones (or they both lack timezones).
```
import boto.ec2
from dateutil.parser import *
import subprocess
import datetime

instance_id = subprocess.check_output(['curl', '-s', 'http://169.254.169.254/latest/meta-data/instance-id'])

conn = boto.ec2.connect_to_region('ap-southeast-2',aws_access_key_id='Your_Key', aws_secret_access_key='Your_Secret')

reservations = conn.get_all_reservations(instance_ids=[instance_id])

for r in reservations:
    for instance in r.instances:
        lt_datetime = parse(instance.launch_time)
        lt_delta = datetime.datetime.now(lt_datetime.tzinfo) - lt_datetime
        uptime = str(lt_delta)
        print(uptime)

```