Changeset 16139
- Timestamp:
- 09/07/08 17:41:16 (4 months ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/intermine/objectstore/main/src/org/intermine/util/TypeUtil.java
r15966 r16139 23 23 import java.util.Arrays; 24 24 import java.util.Collection; 25 import java.util.Date; 25 26 import java.util.HashMap; 26 27 import java.util.HashSet; 27 28 import java.util.Map; 28 import java.util.Date;29 29 import java.util.Set; 30 30 import java.util.StringTokenizer; 31 import java.util.TimeZone; 31 32 import java.util.TreeMap; 33 import java.text.DateFormat; 34 import java.text.ParseException; 35 import java.text.SimpleDateFormat; 32 36 33 37 import org.intermine.metadata.Model; … … 478 482 } 479 483 484 static final private DateFormat DATE_TIME_FORMAT; 485 static final private DateFormat DATE_FORMAT; 486 487 static { 488 DATE_TIME_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 489 DATE_TIME_FORMAT.setTimeZone(TimeZone.getTimeZone("UTC")); 490 491 DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd"); 492 DATE_FORMAT.setTimeZone(TimeZone.getTimeZone("UTC")); 493 } 480 494 481 495 /** … … 516 530 } 517 531 if (clazz.equals(Date.class)) { 518 return new Date(Long.parseLong(value)); 532 if (value.matches("^\\d+$")) { 533 return new Date(Long.parseLong(value)); 534 } else { 535 try { 536 return DATE_TIME_FORMAT.parse(value); 537 } catch (ParseException e) { 538 try { 539 return DATE_FORMAT.parse(value); 540 } catch (ParseException e1) { 541 return new RuntimeException("Failed to parse " + value + " as a Date", e); 542 } 543 } 544 } 519 545 } 520 546 if (clazz.equals(BigDecimal.class)) { trunk/intermine/objectstore/test/src/org/intermine/util/TypeUtilTest.java
r14641 r16139 170 170 assertEquals(new Character('c'), TypeUtil.stringToObject(Character.TYPE, "c")); 171 171 assertEquals(new Date(7777777), TypeUtil.stringToObject(Date.class, "7777777")); 172 assertEquals(new Date(1199923200000L), TypeUtil.stringToObject(Date.class, "2008-01-10")); 173 assertEquals(new Date(1199926800000L), 174 TypeUtil.stringToObject(Date.class, "2008-01-10 01:00:00")); 172 175 } 173 176
