From 406d2b3bfe6336c71b6aedd202bb896fc47b2587 Mon Sep 17 00:00:00 2001 From: Ashok Gautham Date: Sun, 13 Jan 2013 16:48:34 +0530 Subject: [PATCH] Fix errors in how parsed time values were used %u flag takes a value in the range of 1-7. However value needs to be stored in tm.tm_wday between 0 and 6. %y takes a two-digit year value. Subtracting 1900_i32 from it is not needed. --- src/libstd/time.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libstd/time.rs b/src/libstd/time.rs index 72132071a05c..53fb51f08b3c 100644 --- a/src/libstd/time.rs +++ b/src/libstd/time.rs @@ -551,7 +551,7 @@ priv fn do_strptime(s: &str, format: &str) -> Result { match match_digits(s, pos, 1u, false) { Some(item) => { let (v, pos) = item; - tm.tm_wday = v; + tm.tm_wday = v-1_i32; Ok(pos) } None => Err(~"Invalid day of week") @@ -590,7 +590,7 @@ priv fn do_strptime(s: &str, format: &str) -> Result { match match_digits(s, pos, 2u, false) { Some(item) => { let (v, pos) = item; - tm.tm_year = v - 1900_i32; + tm.tm_year = v; Ok(pos) } None => Err(~"Invalid year")