Cantonese aspect markers: zo2, gwo3, gan2, and hai2
Cantonese has no past, present, or future tenses. Verbs do not change form. Instead, Cantonese uses aspect markers to show whether an action is completed, ongoing, or has been experienced. This is a smaller system than English tenses, and surprisingly intuitive once you see it.
How aspect differs from tense
English has tense. "I ate", "I am eating", and"I will eat" all use different verb forms to point to a time. Cantonese verbs do not change at all. "sik6 食" (to eat) is the same word in every situation.
Cantonese expresses time in two ways. First, with time words like"gam1 jat6 (today)", "cam4 jat6 (yesterday)","ting1 jat6 (tomorrow)". Second, with aspect markers that attach to the verb to show whether the action is finished, ongoing, or once experienced.
That is the key insight: Cantonese cares less about when something happened and more about whether it is complete, in progress, or part of life experience. Once you stop trying to translate English tenses, the system feels lighter.
zo2 咗: completion
"zo2" is placed right after the verb and means the action has been completed. It is the closest thing Cantonese has to a past tense, but it really marks completion, not time. You can use it for past actions, near future actions that will be done, or anytime the point is that something is finished.
The negative of "sik6 zo2 (ate)" is not "m4 sik6 zo2". It is "mou5 sik6 (didn't eat)". The aspect marker disappears in the negative. See the negation guide for more.
gwo3 過: experience
"gwo3" marks an action you have done at some point in your life, like English "have ever". The action does not have to be recent. It might have happened once, years ago, but the experience counts.
"sik6 zo2 (ate)" talks about a specific completed eating."sik6 gwo3 (have eaten before)" talks about life experience."I ate sushi" = "sik6 zo2 syu6 si1". "I have eaten sushi (before)" = "sik6 gwo3 syu6 si1".
gan2 緊: in progress
"gan2" marks an action in progress, like English "am ing". It comes right after the verb.
hai2 dou6 喺度: at this moment
"hai2 dou6" (literally "at this place") goes before the verb to emphasise that the action is happening right now. You can combine it with "gan2" for extra emphasis.
Putting time and aspect together
Time words go at the start of the sentence or right before the verb. The aspect marker stays on the verb. Together they paint a clear picture without changing the verb.
Quick decision guide
- Did the action finish? Use zo2 咗.
- Have you done it at some point in life? Use gwo3 過.
- Is it happening right now? Use gan2 緊, or combine with hai2 dou6 喺度.
- Will it happen later? No aspect marker is needed. Use a future time word and the modal verb wui5 會 if you want to be explicit about future.
Common mistakes
Using zo2 in the negative
"m4 sik6 zo2" is not correct. The negative of completed action drops the aspect marker and uses "mou5":"mou5 sik6".
Mixing zo2 and gwo3
"I ate sushi yesterday" uses "zo2" because it is a specific completed action. "I have tried sushi before" uses"gwo3" because it is a life experience. They are not interchangeable.
Forgetting that future needs no marker
You do not need any aspect marker for the future. "ting1 jat6 ngo5 sik6 syu6 si1 (tomorrow I eat sushi)" works on its own. Add"wui5 (will)" only if you want to stress intention or certainty.
Trying to find a present tense
"I eat" as a habit does not need any aspect marker."ngo5 sik6 jyu4 (I eat fish)" is a complete habit statement. You only add an aspect marker when the action is completed, in progress, or experienced.



