The current DateTimeType creates a DateTime with DateTimeKind.Unspecified. By default when converting times the framework takes Unspecified to mean Local. I have added two new NHibernate Types UtcDateTime and LocalDateTime which will create a DateTime instance with the given DateTimeKind. This is very useful when you want to store UTC dates in your database.
I also modified the Equals and HashCode functions to evaluate the Kind property as well. A local time and utc time with the same values should not be equal.
Usage:
<property name="MyDate" type="UtcDateTime" />
<property name="LocalDate" type="LocalDateTime" />
The inspiration came when I needed to use Utc dates in an app and I came across this post.
http://www.milkcarton.com/blog/2007/01/19/NHibernate+DateTime+And+UTC.aspx