Interesting! Once you build your date string (e.g., "1997-03-21") you'll need to call
new Date("1997-03-21").toISOString() to get it into the required Salesforce format. See here:
http://openfn.github.io/docs/documentation/#convert-date-string-to-standard-iso-date-for-salesforce
Using that with str.concat could look like this:
field("sf_date__c", function(state) {
const string = dataValue("year")(state).concat(
"-",
dataValue("month")(state),
"-",
dataValue("day")(state)
)
return new Date(string).toISOString()
})