public static long parseTimestamp(String value)
    {
        try {
            return parseLong(value);
        }
        catch (NumberFormatException e) {
            // Sometimes Pinot returns float point string in a field that we expect timestamp.
            // This can happen because of JsonParser, Pinot Query Engine, etc.
            // In this case we may still go through by reading a float value
            try {
                return parseDouble(value).longValue();
            }
            catch (Exception ignoredEx) {
                return TimestampUtils.toMillisSinceEpoch(value);
            }
        }
    }
@Test
    public void testParseTimestamp()
    {
        long epoch = parseTimestamp("1.672528152E12");
        assertEquals(epoch, 1672528152000L);
        long epoch2 = parseTimestamp("1652374863000");
        assertEquals(epoch2, 1652374863000L);
        long epoch3 = parseTimestamp("2022-05-12 10:48:06.5");
        assertEquals(epoch3, 1652370486500L);
    }