Mercurial > jhg
comparison src/org/tmatesoft/hg/repo/HgChangelog.java @ 146:8c9f729f4dfa
Timezone finally in use
| author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
|---|---|
| date | Fri, 18 Feb 2011 05:20:18 +0100 |
| parents | 144d771ee73c |
| children | ab7ea2ac21cb |
comparison
equal
deleted
inserted
replaced
| 145:acc6151b1b7a | 146:8c9f729f4dfa |
|---|---|
| 17 package org.tmatesoft.hg.repo; | 17 package org.tmatesoft.hg.repo; |
| 18 | 18 |
| 19 import java.io.UnsupportedEncodingException; | 19 import java.io.UnsupportedEncodingException; |
| 20 import java.util.ArrayList; | 20 import java.util.ArrayList; |
| 21 import java.util.Arrays; | 21 import java.util.Arrays; |
| 22 import java.util.Calendar; | |
| 22 import java.util.Collections; | 23 import java.util.Collections; |
| 23 import java.util.Date; | 24 import java.util.Date; |
| 24 import java.util.Formatter; | 25 import java.util.Formatter; |
| 25 import java.util.HashMap; | 26 import java.util.HashMap; |
| 26 import java.util.List; | 27 import java.util.List; |
| 27 import java.util.Locale; | 28 import java.util.Locale; |
| 28 import java.util.Map; | 29 import java.util.Map; |
| 30 import java.util.TimeZone; | |
| 29 | 31 |
| 30 import org.tmatesoft.hg.core.Nodeid; | 32 import org.tmatesoft.hg.core.Nodeid; |
| 31 import org.tmatesoft.hg.internal.RevlogStream; | 33 import org.tmatesoft.hg.internal.RevlogStream; |
| 32 | 34 |
| 33 | 35 |
| 104 private/* final */Nodeid manifest; | 106 private/* final */Nodeid manifest; |
| 105 private String user; | 107 private String user; |
| 106 private String comment; | 108 private String comment; |
| 107 private List<String> files; // unmodifiable collection (otherwise #files() and implicit #clone() shall be revised) | 109 private List<String> files; // unmodifiable collection (otherwise #files() and implicit #clone() shall be revised) |
| 108 private Date time; | 110 private Date time; |
| 109 private int timezone; // not sure it's of any use | 111 private int timezone; |
| 110 private Map<String, String> extras; | 112 private Map<String, String> extras; |
| 111 | 113 |
| 112 /** | 114 /** |
| 113 * @see mercurial/changelog.py:read() | 115 * @see mercurial/changelog.py:read() |
| 114 * | 116 * |
| 147 public Date date() { | 149 public Date date() { |
| 148 return time; | 150 return time; |
| 149 } | 151 } |
| 150 | 152 |
| 151 public String dateString() { | 153 public String dateString() { |
| 154 // XXX keep once formatted? Perhaps, there's faster way to set up calendar/time zone? | |
| 152 StringBuilder sb = new StringBuilder(30); | 155 StringBuilder sb = new StringBuilder(30); |
| 153 Formatter f = new Formatter(sb, Locale.US); | 156 Formatter f = new Formatter(sb, Locale.US); |
| 154 f.format("%ta %<tb %<td %<tH:%<tM:%<tS %<tY %<tz", time); | 157 TimeZone tz = TimeZone.getTimeZone("GMT"); |
| 158 // apparently timezone field records number of seconds time differs from UTC, | |
| 159 // i.e. value to substract from time to get UTC time. Calendar seems to add | |
| 160 // timezone offset to UTC, instead, hence sign change. | |
| 161 tz.setRawOffset(timezone * -1000); | |
| 162 Calendar c = Calendar.getInstance(tz, Locale.US); | |
| 163 c.setTime(time); | |
| 164 f.format("%ta %<tb %<td %<tH:%<tM:%<tS %<tY %<tz", c); | |
| 155 return sb.toString(); | 165 return sb.toString(); |
| 156 } | 166 } |
| 157 | 167 |
| 158 public Map<String, String> extras() { | 168 public Map<String, String> extras() { |
| 159 return extras; | 169 return extras; |
