我國早在夏代就已經觀察天象,至商周時期,進一步對日、月、五星(即水星、金星、火星、木星、土星)的運行及方位作出了係統觀測。後又選擇二十八個星作為觀測的標誌,這就是“二十八宿”。為了觀察的精確,又沿著黃道把周天分作十二等分,並用若幹星官作標誌,標以十二支的名稱,主要用來表示一年十二個月中日月交會的位置,並配以十二辰之禽(十二種獸類、禽類)的形象。又將木星、金星、火星、水星也以四禽獸的形象“標示四方”。

東漢思想家王充在《論衡?物勢篇》中說:“東方木也,其星蒼龍也。西方金也,其星白虎也。南方火也,其星朱鳥也。北方水也,其星玄武也。天以四星之精,降生四獸之體。含血之蟲,以四獸為長,四獸含五行之氣最較著”。以上四獸禽與陰陽五行,即金木水火土相配。

同時,王充又以十二地支“以十二辰之禽效之”,即所謂十二生肖。他說:“寅,木也,其禽虎也;戌,土也,其禽犬也;醜、未,亦土也,醜禽牛,未禽羊也……亥,水也,其禽豕也;巳,火也,其禽蛇也;子,亦水也,其禽鼠也;午,亦火也,其禽馬也。”又說:“……午,馬也,子,鼠也,酉,雞也,卯,兔也……亥,豕也,未,羊也,醜,牛也……巳,蛇也,申,猴也”。王充又在《言毒篇》中說:“辰為龍”。“五行”與“十二辰”和“十二支”相連,即與十二獸禽的形象相連,再與十個“天幹”相配,構成甲子、乙醜、丙寅年……以六十年為一輪,便是所謂“六十花甲子”。而後又重循環,周而複始,綿綿千古不絕。所以,作為十二辰禽的十二生肖,既是時間序列和空間方位的象征,也是我國古代術數家將科學用藝術形象表現出來。

唐代喪葬活動中流行“十二支神象”陪葬的習俗,就是製成“獸首人身”的十二生肖明器。《唐會要》記載:“文武官及庶人喪葬,三品以上明器九十事,四神十二時在內”。所謂“十二時”就是十二個“獸首人身”十二生肖,“四神”,就是青龍、白虎、朱雀、玄武四方神。對死者來說,墓中陪十二生肖和四方神,既起保護作用,又是吉祥的象征。

十二生肖起於何時,很難查考,過去以王充所說的十二辰禽為較早的記載,但絕非起始於漢代,而應上溯到更久遠的時代。

1975年湖北省雲夢縣睡虎地秦墓中出土大量的竹簡,在《日書》背麵《盜者》一節中,記載著地支十二生肖的文字,其中的鼠、牛、虎、兔、馬、羊、豬七種屬相與今日相同,有五種的名稱與今日不一樣,如“巳,蟲也;午,鹿也;申,環也;酉,水邊;戌,老羊也。”後經已故學者於豪亮研究指出:蟲,即蝮,即蛇,蝮蛇。環讀為兒(音táo,古陶字)即猿,與猴近。水讀為雉,即野雞,與雞相近。竹簡上“辰”字下方的屬相漏寫,不知何物。

秦墓出土十二生肖竹簡,說明在先秦時期人們已有生肖的概念。

戰國時期楚國的大詩人屈原,在《離騷》中自述:“攝提貞於孟陬兮,惟庚寅以降”,說他生於寅年寅月寅日,“寅”的屬相是虎。“攝提”是古代以星歲紀年的方法,“孟陬”是指夏曆春季的第一個月。我國曆法把冬至歸納為第一個月稱為子月,第二月叫醜月,第三月叫寅月,以此類推。若把一年歲首的正月放在寅月,便是“建寅”,或稱“寅正”。屈原生於庚寅年,當是前331年,距今有2328年了。又傳說屈原生於前340年,但這年是辛巳年,不是虎年。

中國古代歲時節令所謂的“正朔”,“正”是一年開始的第一天,“朔”是一月開始的第一天。古時改朝換代,新王朝為了表示“應天承運”,要重定正朔。夏正建寅為人統,殷正建醜為地統(以陰曆十二月初一為歲首),周正建子為天統(以陰曆十一月初一為歲首),秦建亥,以夏曆十月為歲首。漢朝初年用顓頊曆,以九月為年終,十月為年之始。漢武帝時,因數次改正朔,曆法不準,命司馬遷、落下閎、鄧平改為“太初曆”,恢複夏曆,以建寅為歲首。自此曆代沿用,迄於清末。由此可見,早在四千餘年前的夏代,紀歲建寅,便是以虎為一年首月,中間雖有千餘年的變化,到公元前的140年漢武帝恢複用虎年紀歲,到清朝末年,一直沿用了2051年之久。