Lorsque quelqu'un prononce « il y a deux ans », ça ressemble à « il y a douze ans. »
Comment distinguer l'un ou l'autre ?
There is a definite difference between those two sounds, unless the locutor is pronouncing them in a very slack fashion.
The phonetic vowel corresponding to "eu" in "deux" is pronounced "ø". Here is a series of pronunciations across France: https://fr.wiktionary.org/wiki/deux#Prononciation; that'll give you an idea of the allowed allophonic variations. The phonetic vowel corresponding to "ou", in all words, is pronounced "u". Here is another series of French pronunciations for "douze": https://fr.wiktionary.org/wiki/douze#Prononciation.
Il n'y a pas d'autre méthode que l'entraînement à l'écoute du français.
Nous distinguons en général facilement les voyelles eu et ou, mais une oreille habituée à d'autres phonèmes pourra avoir des difficultés à le faire.
La différence s'entend entre le "eu" et le "ou" deux ans [dø] / douze ans [duz].
S'il a un doute, l'interlocuteur demande de confirmer.
Il arrive aussi (si le contexte le permet, quand il s'agit d'une date approximative par exemple) que l'on dise "deux-trois ans" ou "douze-treize ans" et dans ce cas il n'y a plus de doute.