Estoy tratando de lidiar con el tiempo expresado como 2022-07-15 06:30 LT (UTC +5.5) Puedo trabajar con todo el número UTC pero no he encontrado una manera de lidiar con el 0.5
const date1 = " 2022-07-15 06:30 LT (UTC +5.5)"; utcDrop = date1.trim().split("(UTC ")[1].split(")")[0]*1; str1 = date1.trim().split(" ")[0]; str2 = date1.trim().split(" ")[1]; date3 = str1 + "T" + str2; const date = new Date(date3) numOfHours = date1.split("UTC ")[1].split(")")[0]*1; function subtractHours(numOfHours, date = new Date()) { date.setHours(date.getHours() - numOfHours); return date; } d=subtractHours(numOfHours, date); last_port_atd = d.toISOString().slice(0, 10) + ' ' + d.toTimeString().slice(0, 5);'2022-07-15 00:30' que está mal porque no sé la declaración correcta.
No tengo idea de qué métodos se emplean generalmente para la tarea, aquí hay un desglose de cómo lo haría.
Simplemente probaría el método parseFloat en la parte de la cadena que creo que contiene el número de interés. Usaría una búsqueda de cadenas para localizar este número de interés.
let haystack = '2022-07-15 06:30 LT (UTC -5.5)'; let needle = "UTC"; // set numPos to the index of the char between "UTC" and "-5.5" (a space) let numPos = haystack.indexOf(needle) + needle.length; // extract all chars from this point until the end of the string let numStr = haystack.substr(numPos); // use parseFloat, so we can capture both positive & negative offsets of non-integer amounts let offset = parseFloat(numStr); console.log(offset);