Commit 5ec61be5 authored by neuecc's avatar neuecc

fix keyExpiry's DateTime convert to Utc

parent f4208759
...@@ -61,7 +61,7 @@ public void TestBasicExpiryDateTime(bool disablePTimes, bool utc) ...@@ -61,7 +61,7 @@ public void TestBasicExpiryDateTime(bool disablePTimes, bool utc)
var conn = muxer.GetDatabase(); var conn = muxer.GetDatabase();
conn.KeyDelete(key, CommandFlags.FireAndForget); conn.KeyDelete(key, CommandFlags.FireAndForget);
var now = utc ? DateTime.UtcNow : DateTime.Now; var now = utc ? DateTime.UtcNow : new DateTime(DateTime.UtcNow.Ticks + TimeZoneInfo.FindSystemTimeZoneById("Tokyo Standard Time").BaseUtcOffset.Ticks, DateTimeKind.Local);
conn.StringSet(key, "new value", flags: CommandFlags.FireAndForget); conn.StringSet(key, "new value", flags: CommandFlags.FireAndForget);
var a = conn.KeyTimeToLiveAsync(key); var a = conn.KeyTimeToLiveAsync(key);
conn.KeyExpire(key, now.AddHours(1), CommandFlags.FireAndForget); conn.KeyExpire(key, now.AddHours(1), CommandFlags.FireAndForget);
......
...@@ -1602,7 +1602,7 @@ Message GetExpiryMessage(RedisKey key, CommandFlags flags, DateTime? expiry, out ...@@ -1602,7 +1602,7 @@ Message GetExpiryMessage(RedisKey key, CommandFlags flags, DateTime? expiry, out
default: default:
throw new ArgumentException("Expiry time must be either Utc or Local", "expiry"); throw new ArgumentException("Expiry time must be either Utc or Local", "expiry");
} }
long milliseconds = (when - RedisBase.UnixEpoch).Ticks / TimeSpan.TicksPerMillisecond; long milliseconds = (when.ToUniversalTime() - RedisBase.UnixEpoch).Ticks / TimeSpan.TicksPerMillisecond;
if ((milliseconds % 1000) != 0) if ((milliseconds % 1000) != 0)
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment