fixed #305
This commit is contained in:
parent
c822772b86
commit
8aad854fd8
|
@ -47,7 +47,6 @@ public class TwitterDateConverter extends StringBasedTypeConverter<Date> {
|
|||
private static final String[] MONTH_NAMES = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul",
|
||||
"Aug", "Sep", "Oct", "Nov", "Dec"};
|
||||
|
||||
private static final long ONE_MINUTE = TimeUnit.MILLISECONDS.convert(1, TimeUnit.MINUTES);
|
||||
private static final TimeZone TIME_ZONE = TimeZone.getTimeZone("UTC");
|
||||
private static final Locale LOCALE = Locale.ENGLISH;
|
||||
private final DateFormat mDateFormat;
|
||||
|
@ -99,7 +98,7 @@ public class TwitterDateConverter extends StringBasedTypeConverter<Date> {
|
|||
calendar.set(Calendar.HOUR_OF_DAY, Integer.parseInt(timeSegs[0]));
|
||||
calendar.set(Calendar.MINUTE, Integer.parseInt(timeSegs[1]));
|
||||
calendar.set(Calendar.SECOND, Integer.parseInt(timeSegs[2]));
|
||||
calendar.set(Calendar.ZONE_OFFSET, SimpleTimeZone.getTimeZone("GMT" + segs[4]).getRawOffset());
|
||||
calendar.setTimeZone(SimpleTimeZone.getTimeZone(getTimezoneText(segs[4])));
|
||||
final Date date = calendar.getTime();
|
||||
if (!WEEK_NAMES[calendar.get(Calendar.DAY_OF_WEEK) - 1].equals(segs[0])) {
|
||||
BugReporter.error("Week mismatch " + string + " => " + date);
|
||||
|
@ -108,6 +107,11 @@ public class TwitterDateConverter extends StringBasedTypeConverter<Date> {
|
|||
return date;
|
||||
}
|
||||
|
||||
private String getTimezoneText(String seg) {
|
||||
if (seg.startsWith("GMT") || seg.startsWith("UTC")) return seg;
|
||||
return "GMT" + seg;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String convertToString(Date date) {
|
||||
final Calendar calendar = Calendar.getInstance();
|
||||
|
|
|
@ -29,6 +29,7 @@ android {
|
|||
|
||||
buildConfigField 'boolean', 'ENABLE_MEDIA_VIEWER', 'Boolean.parseBoolean("true")'
|
||||
|
||||
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
||||
}
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_7
|
||||
|
@ -131,6 +132,10 @@ dependencies {
|
|||
provided 'javax.annotation:jsr250-api:1.0'
|
||||
|
||||
testCompile 'junit:junit:4.12'
|
||||
|
||||
androidTestCompile 'com.android.support:support-annotations:23.1.1'
|
||||
androidTestCompile 'com.android.support.test:runner:0.4.1'
|
||||
androidTestCompile 'com.android.support.test:rules:0.4.1'
|
||||
}
|
||||
|
||||
task svgToDrawable(type: SvgDrawableTask) {
|
||||
|
|
|
@ -0,0 +1,35 @@
|
|||
package org.mariotaku.twidere.api.twitter.util;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Locale;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
/**
|
||||
* Created by mariotaku on 16/1/29.
|
||||
*/
|
||||
public class TwitterDateConverterTest {
|
||||
|
||||
private final TwitterDateConverter converter = new TwitterDateConverter();
|
||||
private final SimpleDateFormat format = new SimpleDateFormat("EEE MMM dd HH:mm:ss ZZZZZ yyyy", Locale.ENGLISH);
|
||||
|
||||
@Test
|
||||
public void testGetFromString() throws Exception {
|
||||
testDate("Fri Jan 29 04:12:49 +0100 2016");
|
||||
testDate("Thu Jan 28 11:08:47 +0000 2016");
|
||||
testDate("Sat Oct 03 16:05:32 +0000 2015");
|
||||
testDate("Tue Jan 26 18:30:19 +0100 2016");
|
||||
}
|
||||
|
||||
private void testDate(String s) throws ParseException {
|
||||
assertEquals(converter.getFromString(s), format.parse(s));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConvertToString() throws Exception {
|
||||
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue