Skip to content

Commit 37fe5f0

Browse files
committed
Fix the bits of Time in big-endian case
1 parent 2981c6c commit 37fe5f0

File tree

2 files changed

+8
-8
lines changed

2 files changed

+8
-8
lines changed

src/Ulid.Unity/Assets/Scripts/Ulid/Ulid.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ public DateTimeOffset Time
9393
{
9494
if (BitConverter.IsLittleEndian)
9595
{
96-
// |A|B|C|D|E|F|G|H|... -> |F|E|D|C|B|A|0|0|
96+
// |A|B|C|D|E|F|... -> |F|E|D|C|B|A|0|0|
9797

9898
// Lower |A|B|C|D| -> |D|C|B|A|
9999
// Upper |E|F| -> |F|E|
@@ -105,14 +105,14 @@ public DateTimeOffset Time
105105
}
106106
else
107107
{
108-
// |A|B|C|D|E|F|G|H|... -> |A|B|C|D|E|F|0|0|
108+
// |A|B|C|D|E|F|... -> |0|0|A|B|C|D|E|F|
109109

110110
// Upper |A|B|C|D|
111111
// Lower |E|F|
112-
// Time |A|B|C|D| + |E|F|0|0|
112+
// Time |A|B|C|C|0|0| + |E|F|
113113
var upper = Unsafe.As<byte, uint>(ref Unsafe.AsRef(this.timestamp0));
114114
var lower = Unsafe.As<byte, ushort>(ref Unsafe.AsRef(this.timestamp4));
115-
var time = ((long)upper << 32) + ((long)lower << 16);
115+
var time = ((long)upper << 16) + (long)lower;
116116
return DateTimeOffset.FromUnixTimeMilliseconds(time);
117117
}
118118
}

src/Ulid/Ulid.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ public DateTimeOffset Time
9393
{
9494
if (BitConverter.IsLittleEndian)
9595
{
96-
// |A|B|C|D|E|F|G|H|... -> |F|E|D|C|B|A|0|0|
96+
// |A|B|C|D|E|F|... -> |F|E|D|C|B|A|0|0|
9797

9898
// Lower |A|B|C|D| -> |D|C|B|A|
9999
// Upper |E|F| -> |F|E|
@@ -105,14 +105,14 @@ public DateTimeOffset Time
105105
}
106106
else
107107
{
108-
// |A|B|C|D|E|F|G|H|... -> |A|B|C|D|E|F|0|0|
108+
// |A|B|C|D|E|F|... -> |0|0|A|B|C|D|E|F|
109109

110110
// Upper |A|B|C|D|
111111
// Lower |E|F|
112-
// Time |A|B|C|D| + |E|F|0|0|
112+
// Time |A|B|C|C|0|0| + |E|F|
113113
var upper = Unsafe.As<byte, uint>(ref Unsafe.AsRef(this.timestamp0));
114114
var lower = Unsafe.As<byte, ushort>(ref Unsafe.AsRef(this.timestamp4));
115-
var time = ((long)upper << 32) + ((long)lower << 16);
115+
var time = ((long)upper << 16) + (long)lower;
116116
return DateTimeOffset.FromUnixTimeMilliseconds(time);
117117
}
118118
}

0 commit comments

Comments
 (0)