Williamsburg is located in Iowa county Iowa with a geographic area of 3.4 square miles. The total population in Williamsburg is 3,152 with 52.5% male and 47.5% female. Children under age 5 represent 5.4% of the population, under age 18 equal 20.8% of the population and over age 65 is 13.4% of the population. The median household income is $68,094, per capita income is $38,625. There are a total of 1,391 housing units with 64.9% owner occupied. Education includes 27.7% of residents that are high school graduates and 34.4% with a bachelor's degree or higher. The average temperature in Williamsburg in the summer is 72 degrees, and in the winter 23 degrees.