diff --git a/doc/devdocs/modules/launcher/plugins/timedate.md b/doc/devdocs/modules/launcher/plugins/timedate.md
index 0e1a7ea5754c..69c69c716e07 100644
--- a/doc/devdocs/modules/launcher/plugins/timedate.md
+++ b/doc/devdocs/modules/launcher/plugins/timedate.md
@@ -36,6 +36,7 @@ The following formats are currently available:
| Now | 3/5/2022 5:10 PM | x | x | |
| Time UTC | 4:10 PM | x | x | |
| Now UTC | 3/5/2022 4:10 PM | x | x | |
+| Friendly | Yesterday | x | | |
| Unix Timestamp | 1646496622 | x | x | |
| Unix Timestamp in milliseconds | 1646496622500 | x | x | |
| Hour | 10 | x | | |
diff --git a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate.UnitTests/ImageTests.cs b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate.UnitTests/ImageTests.cs
index 0e53d91b15c0..b1d8b8b3feef 100644
--- a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate.UnitTests/ImageTests.cs
+++ b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate.UnitTests/ImageTests.cs
@@ -62,6 +62,7 @@ public void Setup()
[DataRow("iso zone", "ISO 8601 with time zone - ", "Images\\timeDate.dark.png")]
[DataRow("iso utc zone", "ISO 8601 UTC with time zone - ", "Images\\timeDate.dark.png")]
[DataRow("rfc", "RFC1123 -", "Images\\timeDate.dark.png")]
+ [DataRow("friendly", "Friendly -", "Images\\timeDate.dark.png")]
[DataRow("compatible", "Date and time in filename-compatible format", "Images\\timeDate.dark.png")]
public void IconThemeDarkTest(string typedString, string subTitleMatch, string expectedResult)
{
@@ -109,6 +110,7 @@ public void IconThemeDarkTest(string typedString, string subTitleMatch, string e
[DataRow("iso zone", "ISO 8601 with time zone - ", "Images\\timeDate.light.png")]
[DataRow("iso utc zone", "ISO 8601 UTC with time zone - ", "Images\\timeDate.light.png")]
[DataRow("rfc", "RFC1123 -", "Images\\timeDate.light.png")]
+ [DataRow("friendly", "Friendly -", "Images\\timeDate.light.png")]
[DataRow("compatible", "Date and time in filename-compatible format", "Images\\timeDate.light.png")]
public void IconThemeLightTest(string typedString, string subTitleMatch, string expectedResult)
{
diff --git a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate.UnitTests/QueryTests.cs b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate.UnitTests/QueryTests.cs
index 2eddc0f1c818..51ec07c009a0 100644
--- a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate.UnitTests/QueryTests.cs
+++ b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate.UnitTests/QueryTests.cs
@@ -56,9 +56,9 @@ public void CountWithoutPluginKeyword(string typedString, int expectedResultCoun
[DataRow("(time", 18)]
[DataRow("(date", 28)]
[DataRow("(year", 8)]
- [DataRow("(now", 34)]
- [DataRow("(current", 34)]
- [DataRow("(", 34)]
+ [DataRow("(now", 35)]
+ [DataRow("(current", 35)]
+ [DataRow("(", 35)]
[DataRow("(now::10:10:10", 1)] // Windows file time
[DataRow("(current::10:10:10", 0)]
public void CountWithPluginKeyword(string typedString, int expectedResultCount)
diff --git a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate.UnitTests/TimeAndDateHelperTests.cs b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate.UnitTests/TimeAndDateHelperTests.cs
index 6ae41d2b229d..517bae387547 100644
--- a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate.UnitTests/TimeAndDateHelperTests.cs
+++ b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate.UnitTests/TimeAndDateHelperTests.cs
@@ -166,6 +166,22 @@ public void GetWeekOfMonth(string date, int week)
Assert.AreEqual(result, week);
}
+ [DataTestMethod]
+ [DataRow("2026-04-07T12:00:00", "2026-04-07T08:00:00", "4 hours ago")]
+ [DataRow("2026-04-07T12:00:00", "2026-04-07T15:00:00", "in 3 hours")]
+ [DataRow("2026-04-07T12:00:00", "2026-04-07T12:00:05", "Today")]
+ [DataRow("2026-04-07T12:00:00", "2026-04-06T12:00:00", "Yesterday")]
+ [DataRow("2026-04-07T12:00:00", "2026-04-08T12:00:00", "Tomorrow")]
+ public void FriendlyDateTimeFormats(string now, string target, string expected)
+ {
+ DateTime referenceNow = DateTime.Parse(now, CultureInfo.InvariantCulture);
+ DateTime targetTime = DateTime.Parse(target, CultureInfo.InvariantCulture);
+
+ var result = TimeAndDateHelper.GetFriendlyDateTime(targetTime, referenceNow);
+
+ Assert.AreEqual(expected, result);
+ }
+
[TestCleanup]
public void CleanUp()
{
diff --git a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate.UnitTests/TimeDateResultTests.cs b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate.UnitTests/TimeDateResultTests.cs
index fccaedb300ea..e1f858b3e142 100644
--- a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate.UnitTests/TimeDateResultTests.cs
+++ b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate.UnitTests/TimeDateResultTests.cs
@@ -66,7 +66,7 @@ private DateTime GetDateTimeForTest(bool embedUtc = false)
public void LocalFormatsWithShortTimeAndShortDate(string formatLabel, string expectedResult)
{
// Setup
- var helperResults = AvailableResultsList.GetList(true, false, false, GetDateTimeForTest(), CalendarWeekRule.FirstDay, DayOfWeek.Sunday);
+ var helperResults = AvailableResultsList.GetList(true, false, false, GetDateTimeForTest(), now: null, CalendarWeekRule.FirstDay, DayOfWeek.Sunday);
// Act
var result = helperResults.FirstOrDefault(x => x.Label.Equals(formatLabel, StringComparison.OrdinalIgnoreCase));
@@ -101,7 +101,7 @@ public void LocalFormatsWithShortTimeAndShortDate(string formatLabel, string exp
public void LocalFormatsWithShortTimeAndLongDate(string formatLabel, string expectedResult)
{
// Setup
- var helperResults = AvailableResultsList.GetList(true, false, true, GetDateTimeForTest(), CalendarWeekRule.FirstDay, DayOfWeek.Sunday);
+ var helperResults = AvailableResultsList.GetList(true, false, true, GetDateTimeForTest(), now: null, CalendarWeekRule.FirstDay, DayOfWeek.Sunday);
// Act
var result = helperResults.FirstOrDefault(x => x.Label.Equals(formatLabel, StringComparison.OrdinalIgnoreCase));
@@ -136,7 +136,7 @@ public void LocalFormatsWithShortTimeAndLongDate(string formatLabel, string expe
public void LocalFormatsWithLongTimeAndShortDate(string formatLabel, string expectedResult)
{
// Setup
- var helperResults = AvailableResultsList.GetList(true, true, false, GetDateTimeForTest(), CalendarWeekRule.FirstDay, DayOfWeek.Sunday);
+ var helperResults = AvailableResultsList.GetList(true, true, false, GetDateTimeForTest(), now: null, CalendarWeekRule.FirstDay, DayOfWeek.Sunday);
// Act
var result = helperResults.FirstOrDefault(x => x.Label.Equals(formatLabel, StringComparison.OrdinalIgnoreCase));
@@ -171,7 +171,7 @@ public void LocalFormatsWithLongTimeAndShortDate(string formatLabel, string expe
public void LocalFormatsWithLongTimeAndLongDate(string formatLabel, string expectedResult)
{
// Setup
- var helperResults = AvailableResultsList.GetList(true, true, true, GetDateTimeForTest(), CalendarWeekRule.FirstDay, DayOfWeek.Sunday);
+ var helperResults = AvailableResultsList.GetList(true, true, true, GetDateTimeForTest(), now: null, CalendarWeekRule.FirstDay, DayOfWeek.Sunday);
// Act
var result = helperResults.FirstOrDefault(x => x.Label.Equals(formatLabel, StringComparison.OrdinalIgnoreCase));
@@ -190,7 +190,7 @@ public void LocalFormatsWithLongTimeAndLongDate(string formatLabel, string expec
public void UtcFormatsWithShortTimeAndShortDate(string formatLabel, string expectedFormat)
{
// Setup
- var helperResults = AvailableResultsList.GetList(true, false, false, GetDateTimeForTest(true), CalendarWeekRule.FirstDay, DayOfWeek.Sunday);
+ var helperResults = AvailableResultsList.GetList(true, false, false, GetDateTimeForTest(true), now: null, CalendarWeekRule.FirstDay, DayOfWeek.Sunday);
var expectedResult = GetDateTimeForTest().ToString(expectedFormat, CultureInfo.CurrentCulture);
// Act
@@ -210,7 +210,7 @@ public void UtcFormatsWithShortTimeAndShortDate(string formatLabel, string expec
public void UtcFormatsWithShortTimeAndLongDate(string formatLabel, string expectedFormat)
{
// Setup
- var helperResults = AvailableResultsList.GetList(true, false, true, GetDateTimeForTest(true), CalendarWeekRule.FirstDay, DayOfWeek.Sunday);
+ var helperResults = AvailableResultsList.GetList(true, false, true, GetDateTimeForTest(true), now: null, CalendarWeekRule.FirstDay, DayOfWeek.Sunday);
var expectedResult = GetDateTimeForTest().ToString(expectedFormat, CultureInfo.CurrentCulture);
// Act
@@ -230,7 +230,7 @@ public void UtcFormatsWithShortTimeAndLongDate(string formatLabel, string expect
public void UtcFormatsWithLongTimeAndShortDate(string formatLabel, string expectedFormat)
{
// Setup
- var helperResults = AvailableResultsList.GetList(true, true, false, GetDateTimeForTest(true), CalendarWeekRule.FirstDay, DayOfWeek.Sunday);
+ var helperResults = AvailableResultsList.GetList(true, true, false, GetDateTimeForTest(true), now: null, CalendarWeekRule.FirstDay, DayOfWeek.Sunday);
var expectedResult = GetDateTimeForTest().ToString(expectedFormat, CultureInfo.CurrentCulture);
// Act
@@ -250,7 +250,7 @@ public void UtcFormatsWithLongTimeAndShortDate(string formatLabel, string expect
public void UtcFormatsWithLongTimeAndLongDate(string formatLabel, string expectedFormat)
{
// Setup
- var helperResults = AvailableResultsList.GetList(true, true, true, GetDateTimeForTest(true), CalendarWeekRule.FirstDay, DayOfWeek.Sunday);
+ var helperResults = AvailableResultsList.GetList(true, true, true, GetDateTimeForTest(true), now: null, CalendarWeekRule.FirstDay, DayOfWeek.Sunday);
var expectedResult = GetDateTimeForTest().ToString(expectedFormat, CultureInfo.CurrentCulture);
// Act
@@ -266,7 +266,7 @@ public void UnixTimestampSecondsFormat()
// Setup
string formatLabel = "Unix epoch time";
DateTime timeValue = DateTime.Now.ToUniversalTime();
- var helperResults = AvailableResultsList.GetList(true, false, false, timeValue, CalendarWeekRule.FirstDay, DayOfWeek.Sunday);
+ var helperResults = AvailableResultsList.GetList(true, false, false, timeValue, now: null, CalendarWeekRule.FirstDay, DayOfWeek.Sunday);
var expectedResult = (long)timeValue.Subtract(new DateTime(1970, 1, 1)).TotalSeconds;
// Act
@@ -282,7 +282,7 @@ public void UnixTimestampMillisecondsFormat()
// Setup
string formatLabel = "Unix epoch time in milliseconds";
DateTime timeValue = DateTime.Now.ToUniversalTime();
- var helperResults = AvailableResultsList.GetList(true, false, false, timeValue, CalendarWeekRule.FirstDay, DayOfWeek.Sunday);
+ var helperResults = AvailableResultsList.GetList(true, false, false, timeValue, now: null, CalendarWeekRule.FirstDay, DayOfWeek.Sunday);
var expectedResult = (long)timeValue.Subtract(new DateTime(1970, 1, 1)).TotalMilliseconds;
// Act
@@ -298,7 +298,7 @@ public void WindowsFileTimeFormat()
// Setup
string formatLabel = "Windows file time (Int64 number)";
DateTime timeValue = DateTime.Now;
- var helperResults = AvailableResultsList.GetList(true, false, false, timeValue, CalendarWeekRule.FirstDay, DayOfWeek.Sunday);
+ var helperResults = AvailableResultsList.GetList(true, false, false, timeValue, now: null, CalendarWeekRule.FirstDay, DayOfWeek.Sunday);
var expectedResult = timeValue.ToFileTime().ToString(CultureInfo.CurrentCulture);
// Act
@@ -314,7 +314,7 @@ public void ValidateEraResult()
// Setup
string formatLabel = "Era";
DateTime timeValue = DateTime.Now;
- var helperResults = AvailableResultsList.GetList(true, false, false, timeValue, CalendarWeekRule.FirstDay, DayOfWeek.Sunday);
+ var helperResults = AvailableResultsList.GetList(true, false, false, timeValue, now: null, CalendarWeekRule.FirstDay, DayOfWeek.Sunday);
var expectedResult = DateTimeFormatInfo.CurrentInfo.GetEraName(CultureInfo.CurrentCulture.Calendar.GetEra(timeValue));
// Act
@@ -330,7 +330,7 @@ public void ValidateEraAbbreviationResult()
// Setup
string formatLabel = "Era abbreviation";
DateTime timeValue = DateTime.Now;
- var helperResults = AvailableResultsList.GetList(true, false, false, timeValue, CalendarWeekRule.FirstDay, DayOfWeek.Sunday);
+ var helperResults = AvailableResultsList.GetList(true, false, false, timeValue, now: null, CalendarWeekRule.FirstDay, DayOfWeek.Sunday);
var expectedResult = DateTimeFormatInfo.CurrentInfo.GetAbbreviatedEraName(CultureInfo.CurrentCulture.Calendar.GetEra(timeValue));
// Act
@@ -348,7 +348,7 @@ public void DifferentFirstWeekSettingConfigurations(CalendarWeekRule weekRule, s
{
// Setup
DateTime timeValue = new DateTime(2021, 1, 12);
- var helperResults = AvailableResultsList.GetList(true, false, false, timeValue, weekRule, DayOfWeek.Sunday);
+ var helperResults = AvailableResultsList.GetList(true, false, false, timeValue, now: null, weekRule, DayOfWeek.Sunday);
// Act
var resultWeekOfYear = helperResults.FirstOrDefault(x => x.Label.Equals("week of the year (calendar week, week number)", StringComparison.OrdinalIgnoreCase));
@@ -369,7 +369,7 @@ public void DifferentFirstDayOfWeekSettingConfigurations(DayOfWeek dayOfWeek, st
{
// Setup
DateTime timeValue = new DateTime(2024, 1, 12); // Friday
- var helperResults = AvailableResultsList.GetList(true, false, false, timeValue, CalendarWeekRule.FirstDay, dayOfWeek);
+ var helperResults = AvailableResultsList.GetList(true, false, false, timeValue, now: null, CalendarWeekRule.FirstDay, dayOfWeek);
// Act
var resultWeekOfYear = helperResults.FirstOrDefault(x => x.Label.Equals("week of the year (calendar week, week number)", StringComparison.OrdinalIgnoreCase));
diff --git a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Components/AvailableResultsList.cs b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Components/AvailableResultsList.cs
index 46dcd127df11..ced748cedbf0 100644
--- a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Components/AvailableResultsList.cs
+++ b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Components/AvailableResultsList.cs
@@ -20,10 +20,11 @@ internal static class AvailableResultsList
/// Required for UnitTest: Show time in long format
/// Required for UnitTest: Show date in long format
/// Use custom object to calculate results instead of the system date/time
+ /// Required for UnitTest: Reference "now" time used for relative/friendly formatting
/// Required for UnitTest: Use custom first week of the year instead of the plugin setting.
/// Required for UnitTest: Use custom first day of the week instead the plugin setting.
/// List of results
- internal static List GetList(bool isKeywordSearch, bool? timeLongFormat = null, bool? dateLongFormat = null, DateTime? timestamp = null, CalendarWeekRule? firstWeekOfYear = null, DayOfWeek? firstDayOfWeek = null)
+ internal static List GetList(bool isKeywordSearch, bool? timeLongFormat = null, bool? dateLongFormat = null, DateTime? timestamp = null, DateTime? now = null, CalendarWeekRule? firstWeekOfYear = null, DayOfWeek? firstDayOfWeek = null)
{
List results = new List();
Calendar calendar = CultureInfo.CurrentCulture.Calendar;
@@ -32,6 +33,7 @@ internal static List GetList(bool isKeywordSearch, bool? timeLo
bool dateExtended = dateLongFormat ?? TimeDateSettings.Instance.DateWithWeekday;
bool isSystemDateTime = timestamp == null;
DateTime dateTimeNow = timestamp ?? DateTime.Now;
+ DateTime dateTimeReferenceNow = now ?? DateTime.Now;
DateTime dateTimeNowUtc = dateTimeNow.ToUniversalTime();
CalendarWeekRule firstWeekRule = firstWeekOfYear ?? TimeAndDateHelper.GetCalendarWeekRule(TimeDateSettings.Instance.CalendarFirstWeekRule);
DayOfWeek firstDayOfTheWeek = firstDayOfWeek ?? TimeAndDateHelper.GetFirstDayOfWeek(TimeDateSettings.Instance.FirstDayOfWeek);
@@ -72,6 +74,14 @@ internal static List GetList(bool isKeywordSearch, bool? timeLo
string era = DateTimeFormatInfo.CurrentInfo.GetEraName(calendar.GetEra(dateTimeNow));
string eraShort = DateTimeFormatInfo.CurrentInfo.GetAbbreviatedEraName(calendar.GetEra(dateTimeNow));
+ results.Add(new AvailableResult()
+ {
+ Value = TimeAndDateHelper.GetFriendlyDateTime(dateTimeNow, dateTimeReferenceNow),
+ Label = Resources.Microsoft_plugin_timedate_Friendly,
+ AlternativeSearchTag = ResultHelper.SelectStringFromResources(isSystemDateTime, "Microsoft_plugin_timedate_SearchTagFriendly"),
+ IconType = ResultIconType.DateTime,
+ });
+
// Custom formats
foreach (string f in TimeDateSettings.Instance.CustomFormats)
{
diff --git a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Components/TimeAndDateHelper.cs b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Components/TimeAndDateHelper.cs
index 75ffed195859..257264383e9b 100644
--- a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Components/TimeAndDateHelper.cs
+++ b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Components/TimeAndDateHelper.cs
@@ -417,6 +417,72 @@ internal static DayOfWeek GetFirstDayOfWeek(int pluginSetting)
return DateTimeFormatInfo.CurrentInfo.FirstDayOfWeek;
}
}
+
+ ///
+ /// Returns a friendly human-readable representation of a timestamp relative to a reference "now".
+ /// Uses local date boundaries for Today / Yesterday / Tomorrow.
+ ///
+ internal static string GetFriendlyDateTime(DateTime target, DateTime referenceNow)
+ {
+ // Use local date boundaries. If the input carries UTC kind, convert for comparison/display purposes.
+ DateTime localTarget = target.Kind == DateTimeKind.Utc ? target.ToLocalTime() : target;
+ DateTime localNow = referenceNow.Kind == DateTimeKind.Utc ? referenceNow.ToLocalTime() : referenceNow;
+
+ int dayDiff = (localTarget.Date - localNow.Date).Days;
+ if (dayDiff == 0)
+ {
+ return Resources.Microsoft_plugin_timedate_Friendly_Today;
+ }
+
+ if (dayDiff == -1)
+ {
+ return Resources.Microsoft_plugin_timedate_Friendly_Yesterday;
+ }
+
+ if (dayDiff == 1)
+ {
+ return Resources.Microsoft_plugin_timedate_Friendly_Tomorrow;
+ }
+
+ TimeSpan span = localTarget - localNow;
+ bool isFuture = span.Ticks > 0;
+ TimeSpan abs = span.Duration();
+
+ if (abs.TotalSeconds < 10)
+ {
+ return Resources.Microsoft_plugin_timedate_Friendly_JustNow;
+ }
+
+ if (abs.TotalMinutes < 60)
+ {
+ int minutes = (int)Math.Round(abs.TotalMinutes, MidpointRounding.AwayFromZero);
+ if (minutes <= 1)
+ {
+ return isFuture ? Resources.Microsoft_plugin_timedate_Friendly_InMinute : Resources.Microsoft_plugin_timedate_Friendly_MinuteAgo;
+ }
+
+ return string.Format(CultureInfo.CurrentCulture, isFuture ? Resources.Microsoft_plugin_timedate_Friendly_InMinutes : Resources.Microsoft_plugin_timedate_Friendly_MinutesAgo, minutes);
+ }
+
+ if (abs.TotalHours < 24)
+ {
+ int hours = (int)Math.Round(abs.TotalHours, MidpointRounding.AwayFromZero);
+ if (hours <= 1)
+ {
+ return isFuture ? Resources.Microsoft_plugin_timedate_Friendly_InHour : Resources.Microsoft_plugin_timedate_Friendly_HourAgo;
+ }
+
+ return string.Format(CultureInfo.CurrentCulture, isFuture ? Resources.Microsoft_plugin_timedate_Friendly_InHours : Resources.Microsoft_plugin_timedate_Friendly_HoursAgo, hours);
+ }
+
+ int days = (int)Math.Round(abs.TotalDays, MidpointRounding.AwayFromZero);
+ if (days <= 1)
+ {
+ return isFuture ? Resources.Microsoft_plugin_timedate_Friendly_InDay : Resources.Microsoft_plugin_timedate_Friendly_DayAgo;
+ }
+
+ return string.Format(CultureInfo.CurrentCulture, isFuture ? Resources.Microsoft_plugin_timedate_Friendly_InDays : Resources.Microsoft_plugin_timedate_Friendly_DaysAgo, days);
+ }
}
///
diff --git a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Properties/Resources.Designer.cs b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Properties/Resources.Designer.cs
index b3016d9821fb..609649ea06fc 100644
--- a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Properties/Resources.Designer.cs
+++ b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Properties/Resources.Designer.cs
@@ -122,6 +122,159 @@ internal static string Microsoft_plugin_timedate_DayMonth {
return ResourceManager.GetString("Microsoft_plugin_timedate_DayMonth", resourceCulture);
}
}
+
+ ///
+ /// Looks up a localized string similar to Friendly.
+ ///
+ internal static string Microsoft_plugin_timedate_Friendly {
+ get {
+ return ResourceManager.GetString("Microsoft_plugin_timedate_Friendly", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to 1 day ago.
+ ///
+ internal static string Microsoft_plugin_timedate_Friendly_DayAgo {
+ get {
+ return ResourceManager.GetString("Microsoft_plugin_timedate_Friendly_DayAgo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to {0} days ago.
+ ///
+ internal static string Microsoft_plugin_timedate_Friendly_DaysAgo {
+ get {
+ return ResourceManager.GetString("Microsoft_plugin_timedate_Friendly_DaysAgo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to 1 hour ago.
+ ///
+ internal static string Microsoft_plugin_timedate_Friendly_HourAgo {
+ get {
+ return ResourceManager.GetString("Microsoft_plugin_timedate_Friendly_HourAgo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to {0} hours ago.
+ ///
+ internal static string Microsoft_plugin_timedate_Friendly_HoursAgo {
+ get {
+ return ResourceManager.GetString("Microsoft_plugin_timedate_Friendly_HoursAgo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to in 1 day.
+ ///
+ internal static string Microsoft_plugin_timedate_Friendly_InDay {
+ get {
+ return ResourceManager.GetString("Microsoft_plugin_timedate_Friendly_InDay", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to in {0} days.
+ ///
+ internal static string Microsoft_plugin_timedate_Friendly_InDays {
+ get {
+ return ResourceManager.GetString("Microsoft_plugin_timedate_Friendly_InDays", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to in 1 hour.
+ ///
+ internal static string Microsoft_plugin_timedate_Friendly_InHour {
+ get {
+ return ResourceManager.GetString("Microsoft_plugin_timedate_Friendly_InHour", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to in {0} hours.
+ ///
+ internal static string Microsoft_plugin_timedate_Friendly_InHours {
+ get {
+ return ResourceManager.GetString("Microsoft_plugin_timedate_Friendly_InHours", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to in 1 minute.
+ ///
+ internal static string Microsoft_plugin_timedate_Friendly_InMinute {
+ get {
+ return ResourceManager.GetString("Microsoft_plugin_timedate_Friendly_InMinute", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to in {0} minutes.
+ ///
+ internal static string Microsoft_plugin_timedate_Friendly_InMinutes {
+ get {
+ return ResourceManager.GetString("Microsoft_plugin_timedate_Friendly_InMinutes", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to just now.
+ ///
+ internal static string Microsoft_plugin_timedate_Friendly_JustNow {
+ get {
+ return ResourceManager.GetString("Microsoft_plugin_timedate_Friendly_JustNow", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to 1 minute ago.
+ ///
+ internal static string Microsoft_plugin_timedate_Friendly_MinuteAgo {
+ get {
+ return ResourceManager.GetString("Microsoft_plugin_timedate_Friendly_MinuteAgo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to {0} minutes ago.
+ ///
+ internal static string Microsoft_plugin_timedate_Friendly_MinutesAgo {
+ get {
+ return ResourceManager.GetString("Microsoft_plugin_timedate_Friendly_MinutesAgo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Today.
+ ///
+ internal static string Microsoft_plugin_timedate_Friendly_Today {
+ get {
+ return ResourceManager.GetString("Microsoft_plugin_timedate_Friendly_Today", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Tomorrow.
+ ///
+ internal static string Microsoft_plugin_timedate_Friendly_Tomorrow {
+ get {
+ return ResourceManager.GetString("Microsoft_plugin_timedate_Friendly_Tomorrow", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Yesterday.
+ ///
+ internal static string Microsoft_plugin_timedate_Friendly_Yesterday {
+ get {
+ return ResourceManager.GetString("Microsoft_plugin_timedate_Friendly_Yesterday", resourceCulture);
+ }
+ }
///
/// Looks up a localized string similar to Day of the month.
@@ -554,6 +707,15 @@ internal static string Microsoft_plugin_timedate_SearchTagFormat {
return ResourceManager.GetString("Microsoft_plugin_timedate_SearchTagFormat", resourceCulture);
}
}
+
+ ///
+ /// Looks up a localized string similar to friendly; relative; ago; yesterday; today; tomorrow.
+ ///
+ internal static string Microsoft_plugin_timedate_SearchTagFriendly {
+ get {
+ return ResourceManager.GetString("Microsoft_plugin_timedate_SearchTagFriendly", resourceCulture);
+ }
+ }
///
/// Looks up a localized string similar to Current date and time; Current time and date; Now.
diff --git a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Properties/Resources.resx b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Properties/Resources.resx
index 84d81c1b96f5..8e1f556cd6cf 100644
--- a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Properties/Resources.resx
+++ b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Properties/Resources.resx
@@ -140,6 +140,57 @@
Month and day
+
+ Friendly
+
+
+ Today
+
+
+ Yesterday
+
+
+ Tomorrow
+
+
+ just now
+
+
+ 1 minute ago
+
+
+ {0} minutes ago
+
+
+ in 1 minute
+
+
+ in {0} minutes
+
+
+ 1 hour ago
+
+
+ {0} hours ago
+
+
+ in 1 hour
+
+
+ in {0} hours
+
+
+ 1 day ago
+
+
+ {0} days ago
+
+
+ in 1 day
+
+
+ in {0} days
+
Day of the month
@@ -246,6 +297,10 @@
Date and time; Time and Date
Don't change order
+
+ friendly; relative; ago; yesterday; today; tomorrow
+ Don't change order
+
Date and time; Time and Date; Custom format
Don't change order