private static long lrsn_to_ts(long ifi_ts) {
const long APR_EPOCH_TO_IFI_EPOCH = 2208988800000000L;
return (ifi_ts >> 8) - APR_EPOCH_TO_IFI_EPOCH;
public static void Main()
var lrsn = 0xDD1B14B6BD451A8L;
var tsInMicroSecs = lrsn_to_ts(lrsn);
var tsInSecs = tsInMicroSecs/1000000;
var microSecFrac = tsInMicroSecs - 1000000.0 * tsInSecs;
var ts1 = DateTimeOffset.FromUnixTimeSeconds(tsInSecs).AddMicroseconds(microSecFrac);
var ts = ts1.ToString("yyyy-MM-dd'T'HH:mm:ss.ffffffZ");
Console.WriteLine($"lrsn: [00{lrsn:X}000000000] => ts: {ts}");