add comment

This commit is contained in:
Looly 2022-02-14 01:57:05 +08:00
parent b107e5e0e8
commit 219561b43b
3 changed files with 23 additions and 10 deletions

View File

@ -1,7 +1,8 @@
/**
* 提供CSV文件读写的封装入口为CsvUtil
* 提供CSV文件读写的封装入口为CsvUtil<br>
* 规范见https://datatracker.ietf.org/doc/html/rfc4180
*
* @author looly
*
*/
package cn.hutool.core.text.csv;
package cn.hutool.core.text.csv;

View File

@ -3,7 +3,6 @@ package cn.hutool.core.date;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.BetweenFormatter.Level;
import cn.hutool.core.date.format.FastDateFormat;
import cn.hutool.core.lang.Console;
import cn.hutool.core.util.RandomUtil;
import org.junit.Assert;
import org.junit.Test;
@ -692,7 +691,6 @@ public class DateUtilTest {
@Test
public void parseCSTTest() {
String dateStr = "Wed Sep 16 11:26:23 CST 2009";
Console.log(TimeZone.getDefault().getDisplayName());
SimpleDateFormat sdf = new SimpleDateFormat(DatePattern.JDK_DATETIME_PATTERN, Locale.US);
// Asia/Shanghai是以地区命名的地区标准时在中国叫CST因此如果解析CST时不使用"Asia/Shanghai"而使用"GMT+08:00"会导致相差一个小时
@ -995,11 +993,13 @@ public class DateUtilTest {
@Test
public void parseSingleMonthAndDayTest() {
final DateTime parse = DateUtil.parse("2021-1-1");
DateTime parse = DateUtil.parse("2021-1-1");
Assert.assertNotNull(parse);
Assert.assertEquals("2021-01-01 00:00:00", parse.toString());
Console.log(DateUtil.parse("2021-1-22 00:00:00"));
parse = DateUtil.parse("2021-1-22 00:00:00");
Assert.assertNotNull(parse);
Assert.assertEquals("2021-01-22 00:00:00", parse.toString());
}
@Test

View File

@ -8,7 +8,7 @@ import org.junit.Test;
import java.io.StringReader;
public class CsvParserTest {
@Test
public void parseTest1() {
StringReader reader = StrUtil.getReader("aaa,b\"bba\",ccc");
@ -18,7 +18,7 @@ public class CsvParserTest {
Assert.assertEquals("b\"bba\"", row.getRawList().get(1));
IoUtil.close(parser);
}
@Test
public void parseTest2() {
StringReader reader = StrUtil.getReader("aaa,\"bba\"bbb,ccc");
@ -28,7 +28,7 @@ public class CsvParserTest {
Assert.assertEquals("\"bba\"bbb", row.getRawList().get(1));
IoUtil.close(parser);
}
@Test
public void parseTest3() {
StringReader reader = StrUtil.getReader("aaa,\"bba\",ccc");
@ -38,7 +38,7 @@ public class CsvParserTest {
Assert.assertEquals("bba", row.getRawList().get(1));
IoUtil.close(parser);
}
@Test
public void parseTest4() {
StringReader reader = StrUtil.getReader("aaa,\"\",ccc");
@ -48,4 +48,16 @@ public class CsvParserTest {
Assert.assertEquals("", row.getRawList().get(1));
IoUtil.close(parser);
}
@Test
public void parseEscapeTest(){
// https://datatracker.ietf.org/doc/html/rfc4180#section-2
// 第七条规则
StringReader reader = StrUtil.getReader("\"b\"\"bb\"");
CsvParser parser = new CsvParser(reader, null);
CsvRow row = parser.nextRow();
Assert.assertNotNull(row);
Assert.assertEquals(1, row.size());
Assert.assertEquals("b\"bb", row.get(0));
}
}