从文献记载来看,黄帝时代就有十二地支,它跟白羊、金牛、双子、巨蟹等十二星座有关,最早的十二地支、十二星座都代表着每年十二个不同的月令、节令。殷商时期发明了甲、乙、丙、丁等十个计算与记载数目的文字,后来研究命理的人把它称为天干,并使之与地支结合运用,如甲子、乙丑等,用于计年、月、日、时。
相传以十二种动物取代十二地支,来代表十二个月令,是汉朝东方朔的杰作。有明确记载的是东汉王充所写《论衡》中的《言毒篇》,他提到了十二种动物的名称。用十二生肖来计年,也起于东汉。清朝赵翼所着《陔余从考》也指出这一史实。至于为什么要选定十二种动物作标志,最早可能与图腾有关。古代各部落都选一种特别惧怕或特别喜爱的动物,以其图案作为本部落标志。宋代洪巽的《旸谷漫泉》、明朝郎瑛的《七修类稿》等对此都作了解释。另外佛经《大集经》记有十二生肖轮流游行的故事,但其中无虎而有狮子,因此有人认为,十二生肖是由古印度传入中国的,以虎代狮,可能与中原不产狮有关。
也有人认为,十二生肖首先出现于记时。