I have this item that is a DateTime and the state gives me a string inside my rule. I convert the string to a JS Date object with new Date and confirm the date to be an object with typeof.
Then I try to format this date from Thu Dec 14 2023 12:00:00 GMT+0100 (CET) to a more human readable format using toLocaleString() passing in both en-GB locale and various options. The output is though always the same as the original JS date object described here above.
I have also tried setting a simple string “2023-12-14 12:00:00” with new Date and it give me the same result.
I did read the javascript automation docs and the docs for js-joda and tried to use time. I did not fully understand how to implement js-joda DateTimeFormatter function.
Can anyone point me in the right direction so that I can format my dateTime from JS rule.
var options = {
weekday: 'long',
year: 'numeric',
month: 'long',
day: 'numeric',
hour: 'numeric'
};
var test = new Date("2023-12-14 12:00:00")
var sessionEnergy = parseFloat(items.getItem("EH85AGAZ__Easee_Brunkullas_Total_Session_Energy").state);
var sessionStart = new Date(items.getItem("EH85AGAZ__Easee_Brunkullas_Session_Start").state);
var sessionEnd = items.getItem("EH85AGAZ__Easee_Brunkullas_Session_End").state;
console.log(test.toLocaleString("en-GB", options));
var readableStartDate = sessionStart.toLocaleDateString()
console.log(readableStartDate)
var roundedSessionEnergy = sessionEnergy.toFixed(2);
var actions = actions.Things.getActions("pushover", "pushover:pushover-account:XXXXXXX")
actions.sendHtmlMessage('Laddat: <b>'+ roundedSessionEnergy +' kWh</b><br/>'+readableStartDate+'<br/>', 'Easee BKV10')