Index: src/org/jruby/javasupport/JavaUtil.java
===================================================================
RCS file: /cvsroot/jruby/jruby/src/org/jruby/javasupport/JavaUtil.java,v
retrieving revision 1.29
diff -b -u -r1.29 JavaUtil.java
--- src/org/jruby/javasupport/JavaUtil.java	26 Oct 2005 05:34:13 -0000	1.29
+++ src/org/jruby/javasupport/JavaUtil.java	24 Mar 2006 04:50:25 -0000
@@ -173,11 +173,30 @@
             return runtime.newString(object.toString());
         } else if (IRubyObject.class.isAssignableFrom(javaClass)) {
             return (IRubyObject) object;
+        } else if (java.util.Date.class.isAssignableFrom(javaClass)) {
+        	   return rubyDate(runtime, object, javaClass);
         } else {
             return JavaObject.wrap(runtime, object);
         }
     }
 
+	private static IRubyObject rubyDate(IRuby runtime, Object object, Class javaClass) {
+		// TODO: could use some improvement -- always returning a ruby time for now
+		java.util.Date date = (java.util.Date) object;
+		java.util.Calendar cal = java.util.Calendar.getInstance();
+		cal.setTimeInMillis(date.getTime());
+		return runtime.getClass("Time").callMethod("local", new IRubyObject[] {
+				convertJavaToRuby(runtime, new Integer(cal.get(java.util.Calendar.YEAR)), Integer.class),
+				convertJavaToRuby(runtime, new Integer(cal.get(java.util.Calendar.MONTH)), Integer.class),
+				convertJavaToRuby(runtime, new Integer(cal.get(java.util.Calendar.DATE)), Integer.class),
+				convertJavaToRuby(runtime, new Integer(cal.get(java.util.Calendar.HOUR_OF_DAY)), Integer.class),
+				convertJavaToRuby(runtime, new Integer(cal.get(java.util.Calendar.MINUTE)), Integer.class),
+				convertJavaToRuby(runtime, new Integer(cal.get(java.util.Calendar.SECOND)), Integer.class),
+				// ruby takes microseconds, hence the 1000 multiplier
+				convertJavaToRuby(runtime, new Integer(cal.get(java.util.Calendar.MILLISECOND) * 1000), Integer.class)
+		});
+	}
+
     public static Class primitiveToWrapper(Class type) {
         if (type == Double.TYPE) {
             return Double.class;
