Your room mate is wrong. But not too far off. March 21 is close enough. The very simple definition for the first day of Spring is the day when the night time equals the day time. That is why it's called the "equinox" for "equal". Have you ever noticed that as the year passes, the sun gets high in the sky in the summer and low in the sky in the winter? Or that in Winter the nights are longer, but in summer the DAYS are longer than the nights? The first day of spring (or fall) is the day when the sun is half way in between it's lowest and highest point. It's the day when there are exactly 12 hours of day and 12 hours of night. Really the sun is not moving at all. The planet is moving around the sun, and it is the tilt of the Earth's rotational axis that makes the days longer and shorter.
Time, days, minutes, hours, years. These are all imaginary things thought up by humans. In reality there is no such thing as time, or days or hours. There is only mass, energy, and motion. We humans just create ideas like "time" or "days" in our minds so that we can keep track of the motion of things like the sun and earth (or our friends). We get everyone to agree on units of time so that we can all cooperate together on things--have meetings, dates, dinners, etc. But in reality time is imaginary. We use this imaginary idea so much, however, that most people think it's real. It's not.
The idea that there is a "first day" of spring is an arbitrary notion invented by humans. In fact there IS a POINT IN SPACE when the motion of the earth around the sun makes day and night equal. This moment is called the equinox. That instant falls on a day in a calendar. But the calendar is an imaginary thing that is arbitrarily created by humans to represent passing time, or motion of the planet around the sun. Because the number of days (motion of the Earth revolving around its axis) that pass in a year (motion of earth orbiting the sun) is not a whole number (it's about 365.25 and the reason for leap years) the instant on an arbitrary calendar when the equinox occurs varies from year to year. Sometimes it's on March 21 and sometimes on March 20. (Note: this is just for the Christian calendar. In the Aztec, Chinese, or Jewish calendar, it falls on a completely different month and day. Remember, calendars are just made-up things.) A website at Worlfram Research has an explanation and a table of all the spring (vernal) equinoxes to the exact minute for the Christian calendar for past and future years.
With regards to the statement: "It's the day when there are exactly 12 hours of day and 12 hours of night," this is not accurate. In Edmonton this year, that day was March 17. I believe the statement above would be correct if the earth had no atmosphere but due to refraction by the atmosphere, we see the sun even if it is just below the horizon. I believe a more correct statement would be that it is the second the sun crosses the equator.
Also, a year has 365 days, 5 hours and 49 minutes, so the time when spring starts changes by 5 hours and 49 minutes from year to year at any given location which is why we have leap years. So it is easily possible to have spring start on March 20 in one year but on March 21 in another year. There is also the matter of different time zones so depending on the exact second the sun crosses the equator, it could be March 21 in Germany but still March 20 in Canada so both friends could be right.
[Editor: On further investigation, the exact definition is "The point at which the ecliptic intersects the celestial equator." To put it another way, if you are at the Earth's equator, the sun will be directly overhead at solar noon on the equinox. Shadows will be cast straight down at the equator at solar noon on the equinox. ]