文獻記載黃帝時代有十二地支,與白羊、金牛、雙子、巨蟹等十二星座有關。最早的十二地支和十二星座都代表了每年十二個不同的月份和節日。殷商時期發明了A、B、C、D等十種文字。後來學命理的人稱之為天幹,與地支結合使用,如甲子、娥冤等,用來計算年、月、日、時。
相傳,用十二種動物代替十二地支來代表十二個月的季節,是漢代東方朔的傑作。東漢王充所著《論衡》中有明確的《燕都篇》記載。他提到了十二種動物的名字。按生肖計算年份也始於東漢。趙翼的《清代魚雨考證》也指出了這壹史實。至於為什麽選擇十二種動物作為符號,最早可能與圖騰有關。在古代,所有的部落都會選擇壹種他們特別害怕或者喜愛的動物,並以它的圖案作為他們部落的標誌。宋代洪勛的《楊顧漫全》和明代郎英的《七修抄本》都對此作了說明。此外,佛經《大吉經》記載了十二生肖依次行進的故事,但有獅子而無老虎。所以有人認為十二生肖是從古印度傳入中國的,老虎取代獅子可能與中原不產獅子有關。
也有人認為十二生肖最早出現在寫作的時候。壹晝夜是二十四小時,古代天文學家把壹晝夜分為十二小時。同時,他們觀看天象時,根據十二種動物的生活習性和活動情況來確定生肖。晚上十壹點到第二天淩晨壹點,是老鼠在夜深人靜時活動的時間,被稱為“老鼠”。淩晨1點到3點,很難看。牛習慣晚上吃草,農民經常深夜起來餵,所以被稱為“醜牛”。從淩晨三點到五點,它屬於印石。這個時候,白天臥,晚上走的老虎最兇猛。古人常在此時聽到虎嘯,故稱“銀虎”。從早上五點到七點,是石矛。天剛亮,兔子就離巢,喜歡吃帶晨露的草,所以叫“毛兔”。早上七點到九點,是壹天中的時間。這個時候壹般容易起霧。據說龍喜在雲端飛翔,值旭日東升,故稱“辰龍”。上午9點到11點,是第四次。霧散了,陽光明媚,蛇從洞裏出來覓食,假裝“蛇”。十壹點到中午壹點,是中午。在古代,野馬是不被人類馴服的。每當中午,它們就尖叫著跑來跑去,所以被稱為“午馬”。下午壹點到三點,不合時宜。有的地方稱之為“羊出坡”,意思是這是放羊的好時機,所以叫“未央”。下午三點到五點,是申請時間。太陽西下,此時猴子喜啼叫,故稱“申猴”。下午五點到七點,是酉時。太陽落山時,雞在窩前打轉,故稱“酉雞”。晚上7點到9點,是悲傷的時候。辛苦工作壹天後,我閂上門,準備休息。狗趴在門前守護。壹有動靜就汪汪大叫,所以叫“狗”。晚上9點到11點,是石海。夜深人靜時能聽到豬拱的聲音,故稱“海豬”。就這樣,壹天中的時間是用動物來安排的:老鼠、醜牛、銀虎、毛兔、陳龍、四叔、午馬、羊、猴、酉雞、狗、海豬。後來,人們用這種方法來確定年份,黃道十二宮就出現了。