我创建了一个程序,它接受一个csv文件,读取它的值,并根据我用selenium webdriver执行某些操作的值。
问题是我使用os x,而其他人在Windows上使用它,在上传文件之前你需要编辑一些行(而不是所有时间),然后格式化正在改变并导致问题,但有时甚至没有改变任何问题发生...但在Mac上没有问题......
我正在使用utf-16,因为我下载的网站给了我utf-16 csv' s。这是我的代码的一部分:
object CsvDataSource extends DataSource {
import com.github.tototoshi.csv.{CSVFormat, QUOTE_MINIMAL, Quoting}
implicit object MYFormat extends CSVFormat {
val delimiter: Char = '\t'
val quoteChar: Char = '"'
val escapeChar: Char = '"'
val lineTerminator: String = "\r\n"
val quoting: Quoting = QUOTE_MINIMAL
val treatEmptyLineAsNil: Boolean = false
}
override def read(file: File): Seq[Map[String, String]] = {
val reader = CSVReader.open(file, "UTF-16")(MYFormat)
reader.iteratorWithHeaders.toList
}
}
因此,要使用我的程序,您需要使用某个网站下载文件,这个网站在utf-16中提供csv,然后将其上传到我的程序并完成魔术。但在我的Mac上它工作正常,并且在运行Windows的电脑有时我们会遇到格式化问题...有人知道如何解决这个问题并使其与两个操作系统兼容吗?
示例问题:
play.api.http.HttpErrorHandlerExceptions$$anon$1: Execution exception[[ParseException: Unparseable date: "1-DEC-15"]]
大部分时间都是这个问题,但有时当我修复日期格式时,它仍然可以正常工作,有时它确实有效。我不知道为什么我得到这个问题有时会导致格式很好...日期是假设是" 1-DEC-15"像这样。我需要以这种格式获取它并以不同的方式返回它,这是我做的:
private def changeDateFormat(dateInString: String): String = {
val inputFormat: SimpleDateFormat = new SimpleDateFormat("dd-MMM-yy")
val resultFormat: SimpleDateFormat = new SimpleDateFormat("dd/MM/yyyy")
val date: Date = inputFormat.parse(dateInString)
resultFormat.format(date)
}