Most geeks have the same problem of shifting sleep patterns.
Best cure: physical exhaustion.
The second best cure: deprive yourself of sleep.
Either reset internal clock by staying awake an entire night-day cycle or by just getting up early and suffering for a week.
In any case, you will need severe willpower to force yourself to fight against your nature.
Some tips I've heard over time:
Don't read/watch TV in bed, this enforces insomniac behaviour.
Don't feed after midnight.
Tire yourself out a bit before sleeping, jog or train. Also the hot shower is a good panacea.
(Getting physically exhausted works better than keeping awake 24h and is more productive.)
Once awake, get out of bed.
(and drink some tea, take a leak etc. If you still have hours to morning and desire sleep, get back in.)
Putting your alarm at a place not reachable from bed is a good idea. (I turn it off in my sleep myself)
Don't ignore your alarm.
Snooze is evil, set your alarm at the latest possible, requiring instant dressing and alertness.
Or : get up an hour before required and have a morning ritual, summoning your mind back from the abyss by showering/having a relaxed breakfast/reading the morning paper. coffee!
Coffee is your demon at night and your saving angel in the morning.
Or give in and get a nightjob.
I found having a job with cycling shifts was pretty easy for me. As a benighted person, adapting to getting sleep when possible is much easier than it is for those annoying daywalkers*.
(*The ones that demand everyone starts at 7.30 like them: if you start later, you are lazy, even if you work longer hours.)