English Language Learners Stack Exchange is a question and answer site for speakers of other languages learning English. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

We use "by" to specify time or date, as in

I have to go by 9 am.

We can also use "at" here. When to use "by" / "on" / "at"?

When "by" should be preferred over "before" or "till"?

share|improve this question
up vote 4 down vote accepted
  1. by
    not later than; at or before:
  2. on
    use on to designate days and dates
  3. at
    use at to designate specific times.

So,

  1. I have to go by 9 am
    means the latest you can stay is 9 am. You have to leave at or before 9 am.

  2. I have to go on 9 am
    does not make sense because on is used with days and dates.

  3. I have to go at 9 am
    means you have to leave when the time is (exactly) 9 am.


To answer your follow-up question:

Use before when you have to leave earlier than 9 am.
Use by when you can leave specifically at 9 am or earlier.

Till is the informal version of until. Until has many uses, just like the on/at/by, but I think the main use here is

until
use until to talk about something that will keep going on for a duration of time from a specific time to another.

So "I have to leave until 9 am" doesn't really make sense. One might interpret this as you have to be gone or absent until 9 am. But as you can see, it has a completely different meaning than with the words at or by. You can say

I have to stay until 9 am.

This means you have to stay. And when the time is 9 am, you are free to leave. Depending on the context, it might imply that you will leave at exactly 9 am.

share|improve this answer

"By 9 am" means any time before 9 am.

"At 9 am" means at 9 am specifically.

We don't use "on" with time of day, but we do use it with days:

"On Monday" means sometime during Monday. "By Monday" means any time before Monday.

share|improve this answer

Use by when some action or event needs to be completed before a specific date or time, but it is possible that it could happen earlier.

I must leave for the airport by 9:00 AM tomorrow

(allowing the possibility of leaving earlier)

We must complete this report by the end of July.

(allowing the possibility of completing it earlier)

When we have a specific date or time use on for a date, use at for a time.

We leave for our vacation on Tuesday 13th August.

The train is due to arrive at 10:15 tomorrow morning.

we can use both on and at in the same sentence:

My flight leaves at noon on Wednesday 17th September.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.