最早完整记录十二生肖且与今相同的是东汉王充的《论衡》。《论衡》卷三《物势篇》
“寅木也,其禽虎也;戌土也,其禽犬也;丑未亦土也,丑禽牛,未禽羊也。木胜土,故犬与牛羊为虎所服也。亥水也,其禽豕也;巳火也,其禽蛇也;子亦水也,其禽鼠也;午亦火也,其禽马也……午马也,子鼠也,酉鸡也,卯兔也。水胜火,鼠何不逐马?金胜木,鸡何不啄兔? 亥豕也,未羊也,丑牛也。土胜水,牛羊何不杀豕?巳蛇也,申猴也。火胜金,蛇何不食猕猴?“
同书卷二三《言毒篇》则云
”辰为龙,巳为蛇,辰巳之位在东南。龙有毒,蛇有蜇,故蝮有利牙,龙有逆鳞。木生火,火为毒,故苍龙之兽含火星。”
可见,最迟在东汉十二生肖已全部定型。
清朝梁章缸在《浪迹丛谈·续谈》也转述《论衡》的记载。
《北史·宇文护传》记述后周宇文护的母亲在齐的信“ 昔在武川镇生汝兄弟,大者属鼠,次者属兔,汝身属蛇。”这是以生肖联系出生年见于正史的较早记载。
由于古文献记载未解决十二生肖的文化源头,古今学者对此众说纷纭。观天象的最佳时机应是夜深人静、繁星满天的时候。子夜时分(二十三点至一点),古人(天文学家或道家)仰望天空良久,忽然听得周围有细碎的声音,低头一看,原来是老鼠在活动。天长日久,古人发现鼠类出没频繁的时刻是子时。于是,子时便与鼠联系在一起,成了“子鼠”,并按一天的起始,排在属相的第一位。
“马无夜草不肥”,牛也是如此。农家以牛耕田,喂好牛是农家的大事。丑时(一点至三点),农家自会起身喂牛。牛与丑时联系在一起,便成了“丑牛”。
凌晨三点至五点,昼伏夜行的虎最凶猛,农家常常会在此时听到不远处传来虎啸声。于是,虎与寅时相联系,有了“寅虎”。
五点至七点,天亮了,兔子跑出窝,去吃带着露水的青草。于是,兔子与卯时相联系,便有了“卯兔”。
七点至九点,是容易起雾的时刻。据说龙能腾云驾雾,大雾之中才会“神龙见尾不见首”。不过龙是传说中的动物,或者说是人用几种动物的“零件”拼凑起来的“人造动物”,在现实中看不到,只有大雾蒙蒙之中,人们才会产生龙的幻象。如此,龙才会在辰时的雾中“出现”。龙和辰时相联系,便有了“辰龙”。
九点至十一点,大雾散去,艳阳当空。体温不恒定的蛇从洞穴中爬出来晒太阳。无论有毒还是没有毒的蛇,都是可怕的,蛇最活跃的时刻,便是“巳时”。在造字时,“巳”被画成了一条蛇的象形。“巳蛇”,是天然地联系在一起的。
十一点至十三点,烈日当头。这“烈”,使人想到了人类“得力助手之一”的马。红鬃烈马是良驹,但它的性子就像午时的太阳一样火烈。马与午时相联系,就有了“午马”。
十三点至十五点,未时,骄阳已把草上的露珠晒乾,可别忘了这正是放羊的好时光。于是,“未羊”应运而生。
十五点至十七点,申时,太阳偏西,或者雨过天晴,天气显得清爽起来。这时候,猴子最喜欢在树林里玩耍啼叫,人们听到了,记在心里,便把这一时刻与猴子联系在一起,于是有了“申猴”。
十七点至十九点,酉时,太阳快落山了,家养的鸡该回窝了;再不回窝,天一黑就会找不见。农妇着急了,四处呼唤着,轰鸡入窝。这吃饭喝酒的时刻,也与家鸡入窝相连,于是就有了“酉鸡”。
十九点至二十一点,戌时,人们在临睡之前要巡视一番;跟随他们的,是人类的另一个“助手”--狗。巡视的时刻与狗联系起来成为“戌狗”,恰到好处。
二十一点至二十三点,深夜可以听到肥猪拱槽的声音,主人很高兴。不过要想猪长得肥壮,还得起身为它添食。亥时,自然与猪相连,于是有了“亥猪”。
表示十二时辰的十二个字与十二生肖相结合,便有了子鼠、丑牛、寅虎、卯兔、辰龙、巳蛇、午马、未羊、申猴、酉鸡、戌狗、亥猪。