我正在try 解析字段为DateTime
的记录,但FileHelpers没有使用我提供的格式.以下是一个应该解析记录但抛出错误的F#脚本.我认为这个问题与它是一个F#脚本有关,因为当我在.fsproj
中使用它并在dotnet run
中运行它时,这段代码可以正常工作.
#r "nuget: FileHelpers, 3.5.1"
open System
open FileHelpers
[<DelimitedRecord(","); IgnoreFirst; CLIMutable>]
type RateRecord =
{
[<FieldConverter(ConverterKind.Date, "yyyy-MM-dd hh:mm")>]
DateTime : DateTime
Value : float
}
let sampleData = """DateTime,Value
2020-02-01 00:00,259
2020-02-01 00:01,267
2020-02-01 00:02,270"""
let engine = FileHelperEngine<RateRecord>()
let values = engine.ReadString sampleData
运行脚本的输出.错误消息在末尾.注意,错误消息说它试图使用'ddMMyyyy'
格式,这不是我指定的格式.
> #r "nuget: FileHelpers, 3.5.1"
-
- open System
- open FileHelpers
-
- [<DelimitedRecord(","); IgnoreFirst; CLIMutable>]
- type RateRecord =
- {
- [<FieldConverter(ConverterKind.Date, "yyyy-MM-dd hh:mm")>]
- DateTime : DateTime
- Value : float
- }
-
-
- let sampleData = """DateTime,Value
- 2020-02-01 00:00,259
- 2020-02-01 00:01,267
- 2020-02-01 00:02,270"""
-
- let engine = FileHelperEngine<RateRecord>()
- let values = engine.ReadString sampleData
- ;;
[Loading C:\Users\mcrews\AppData\Local\Temp\22000--4251218c-2322-40be-9ae7-fce17ffe54c3\Project.fsproj.fsx]
namespace FSI_0012.Project
FileHelpers.ConvertException: Error Converting '2020-02-01 00:00' to type: 'DateTime'. There are more chars in the Input String than in the Format string: 'ddMMyyyy'
at FileHelpers.Converters.DateTimeConverter.StringToField(String from)
at FileHelpers.FieldBase.AssignFromString(ExtractedInfo fieldString, LineInfo line)
at FileHelpers.FieldBase.ExtractFieldValue(LineInfo line)
at FileHelpers.RecordOperations.StringToRecord(Object record, LineInfo line, Object[] values)
at FileHelpers.FileHelperEngine`1.ReadStreamAsList(TextReader reader, Int32 maxRecords, DataTable dt)
at FileHelpers.FileHelperEngine`1.ReadStream(TextReader reader, Int32 maxRecords)
at FileHelpers.FileHelperEngine`1.ReadString(String source, Int32 maxRecords)
at FileHelpers.FileHelperEngine`1.ReadString(String source)
at <StartupCode$FSI_0013>.$FSI_0013.main@() in d:\Documents\GitHub\Scratchpad\FileHelpers\Test.fsx:line 158
Stopped due to error
>