The first, which is the least effective, is just to lay down at the time you want to go to sleep. It's not effective because if you're trying to fix it, it's usually too far off to simply do that.
The next two are more effective and follow the same type of construction. I suggest using the one that will get you to your desired sleeping time quicker. If you're twelve hours off (as I am now) I'd use the third method because it's easier.
The second method is to fall asleep one hour before you fell asleep the day before. If you fell asleep at 9:00 AM yesterday, go to bed at 7:00 AM today. The reason I say 7:00 is so that you're going to be asleep a bit before 8:00 that way. The next day you'll go to bed at 6:00 AM and so on.
The third method is to fall asleep an hour after you did the previous day. If you fell asleep at 9:00 AM, go to sleep at 10:00 AM. You won't need to give yourself that extra hour because you'll be more tired, so you'll fall asleep quicker.
The fourth is to just stay up until your desired time to fall asleep. I don't suggest this one too much because you'll oversleep anyway. If you fall asleep at 8:00 PM you'll likely wake up at 8:00 AM wondering what year it is.
With all of the above methods you'll want to keep falling asleep at that time so your body will get used of it. If you don't get used of it, you'll simply fall back into your old habits of staying up until 12:00 AM again if you do.