"Adamo has a three-year-old son."
Translation:Adamo havas tri-jaraĝan filon.
There's one important thing to mention. Depending on the context the adjective tri·jar·a can be understood to refer not to age but something else, while tri·jar·aĝ·a is unambiguous in this regard.
I'm not saying this to deprecate tri·jar·a, I always prefer those shorter words which are almost always perfectly unambiguous. I just want you to be aware that when you ask a policeman about how long is he in the forces and he answers (in Esperanto, for some reason) that he's kvinjara policano, it means that he has been working as a policeman for the past five years, not that he's a five-year-old fighting crime.
Actually, I would say there's a difference.
One person suggested that it may be because "jaragxan" comes before a noun.
"I am three YEARS old" = "Mi estas tri-jara"
"I am A three YEAR-old BOY" = "Mi estas tri-jaragxa"
I capitalized YEAR vs YEARS and the noun just for emphasis on possible understanding.
However, I might be completely wrong, but those seem pretty pausible to me. I mean, regardless, age in Esperanto is a very complex, flexible subject. Whoever you're talking to will probably understand you anyways, so I wouldn't sweat it.
Is tri jaraĝan without a hyphen (dash) acceptable? I don't like them in with "year old" in English either. Don't seem needed more in age phrases than many other places where one might say they make connections clearer but using them is considered wrong rather than mandatory.
A dash is always optional in Esperanto and serves only the purpose of clarifying composed words. But it means you can forget about the hyphen and write the word together, but not as two disjoined words.
In this particular case it helps one to understand trijaraĝa as “being three years old”, while tri jaraĝa could be misinterpreted as tri jaraĝaj, so “three persons being one year old”.