Jonathan. You are correct, I typed the wrong class name on my post, and I have edited it to fix that.
Your method works perfectly. Thanks for that.
value.getValueAt(r, col).getTime()
I also discovered that I can use this other function to just reformat as a string that perspective happily interprets as date:
system.date.format(value.getValueAt(r, col), "yyyy-MM-dd HH:mm:ss")
Finally, for what it's worth, I was struggling with timeseries chart bars widths, until I found another post here with a nice explanation of how using XY chart provides much better flexibility to create bar charts.
So thanks a lot, I will mark this as solved. (Still sort of hoping Sepasoft team provides a more straightforward way to connect datasets with perspective charts.