Yes, it should say when on the box. If you've already opened it though, it won't last very long at all. The contents of the bottle has to be used straight after it is opened or it'll go bad.
I'm sure it does, though I've never noticed an expiration date.
The longest I've kept a box without using it was a month.
It worked fine when I finally did use it.
Its after the time period listed on the bottle of hair dye you purchased. You can speed it up a bit by washing your hair. A lot.
It looks very good.