Mercurial > hg4j
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; |