Skip to content

Commit 406d2b3

Browse files
committed
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.
1 parent ca93583 commit 406d2b3

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

src/libstd/time.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -551,7 +551,7 @@ priv fn do_strptime(s: &str, format: &str) -> Result<Tm, ~str> {
551551
match match_digits(s, pos, 1u, false) {
552552
Some(item) => {
553553
let (v, pos) = item;
554-
tm.tm_wday = v;
554+
tm.tm_wday = v-1_i32;
555555
Ok(pos)
556556
}
557557
None => Err(~"Invalid day of week")
@@ -590,7 +590,7 @@ priv fn do_strptime(s: &str, format: &str) -> Result<Tm, ~str> {
590590
match match_digits(s, pos, 2u, false) {
591591
Some(item) => {
592592
let (v, pos) = item;
593-
tm.tm_year = v - 1900_i32;
593+
tm.tm_year = v;
594594
Ok(pos)
595595
}
596596
None => Err(~"Invalid year")

0 commit comments

Comments
 (0)