I saw the below link.
https://raw.githubusercontent.com/Refinitiv/Real-Time-SDK/master/Java/etc/RDMFieldDictionary
But I can't understand the difference between "SALTIM_MS" and "QUOTIM_MS".
I find out that the "SALTIM_MS", "QUOTIM_MS" seems to be appeared together at each trade data.
Can you explain these fields clearly??
I wrote a test code
import java.time.Instant;
import java.time.OffsetDateTime;
import java.time.ZoneId;
import java.time.ZoneOffset;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
public class JustTestTest {
private final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS.ZZZ");
@Test
@DisplayName("SALTIM_MS, QUOTIM_MS COMPARISON ... ")
public void test1(){
// test case 1)
// "SALTIM_MS":"74190165" "QUOTIM_MS":"59062944"
OffsetDateTime saltim_ms1 = processMilliSecondField("74190165");
OffsetDateTime quotim_ms1 = processMilliSecondField("59062944");
String string1 = formatString(saltim_ms1.format(formatter), quotim_ms1.format(formatter));
System.out.println(string1);
System.out.println();
// test case 2)
// "SALTIM_MS":"75014899" "QUOTIM_MS":"75017913"
OffsetDateTime saltim_ms2 = processMilliSecondField("75014899");
OffsetDateTime quotim_ms2 = processMilliSecondField("75017913");
String string2 = formatString(saltim_ms2.format(formatter), quotim_ms2.format(formatter));
System.out.println(string2);
System.out.println();
// test case 3)
// "SALTIM_MS":"74828357" "QUOTIM_MS":"75000573"
OffsetDateTime saltim_ms3 = processMilliSecondField("74828357");
OffsetDateTime quotim_ms3 = processMilliSecondField("75000573");
String string3 = formatString(saltim_ms3.format(formatter), quotim_ms3.format(formatter));
System.out.println(string3);
System.out.println();
}
public OffsetDateTime processMilliSecondField(String timeStr){
OffsetDateTime serverTodayUTCMilli = ZonedDateTime.now(ZoneId.of("Etc/UTC"))
.withZoneSameLocal(ZoneId.of("Etc/UTC"))
.truncatedTo(ChronoUnit.DAYS)
.toOffsetDateTime();
long timeMilli = Long.parseLong(timeStr);
Long tradeMilli = serverTodayUTCMilli.toInstant().toEpochMilli() + timeMilli;
OffsetDateTime offsetDateTime = OffsetDateTime.ofInstant(Instant.ofEpochMilli(tradeMilli), ZoneOffset.UTC);
return offsetDateTime;
}
public String formatString (String saltim_ms, String quotim_ms){
StringBuilder builder = new StringBuilder();
builder.append("SALTIM_MS = ").append(saltim_ms).append(", ")
.append("QUOTIM_MS = ").append(quotim_ms).append(".");
return builder.toString();
}
}
And. I ran it, the result is like below text.
SALTIM_MS = 2022-03-01T20:36:30.165.+0000, QUOTIM_MS = 2022-03-01T16:24:22.944.+0000.
SALTIM_MS = 2022-03-01T20:50:14.899.+0000, QUOTIM_MS = 2022-03-01T20:50:17.913.+0000.
SALTIM_MS = 2022-03-01T20:47:08.357.+0000, QUOTIM_MS = 2022-03-01T20:50:00.573.+0000.