diff options
author | Jennifer Peshansky <jennifer.peshansky@mongodb.com> | 2023-01-27 18:06:18 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2023-01-27 19:27:38 +0000 |
commit | 33190227bdd2c21328afe7f41ace33bf5d64eeab (patch) | |
tree | a533555859a2fc901ba5cd51aee1a74db258bd3d /src/mongo/db/query | |
parent | 9c7c82b40b7493cb63f971429e04cfb419c62b93 (diff) | |
download | mongo-33190227bdd2c21328afe7f41ace33bf5d64eeab.tar.gz |
SERVER-50336 Add %j format specifier to dateToString
Diffstat (limited to 'src/mongo/db/query')
-rw-r--r-- | src/mongo/db/query/datetime/date_time_support.cpp | 1 | ||||
-rw-r--r-- | src/mongo/db/query/datetime/date_time_support_test.cpp | 11 |
2 files changed, 12 insertions, 0 deletions
diff --git a/src/mongo/db/query/datetime/date_time_support.cpp b/src/mongo/db/query/datetime/date_time_support.cpp index c0ca46d5dbb..14a20c170fd 100644 --- a/src/mongo/db/query/datetime/date_time_support.cpp +++ b/src/mongo/db/query/datetime/date_time_support.cpp @@ -81,6 +81,7 @@ const std::vector<timelib_format_specifier> kDateFromStringFormatMap = { {'d', TIMELIB_FORMAT_DAY_TWO_DIGIT}, {'G', TIMELIB_FORMAT_YEAR_ISO}, {'H', TIMELIB_FORMAT_HOUR_TWO_DIGIT_24_MAX}, + {'j', TIMELIB_FORMAT_DAY_OF_YEAR}, {'L', TIMELIB_FORMAT_MILLISECOND_THREE_DIGIT}, {'m', TIMELIB_FORMAT_MONTH_TWO_DIGIT}, {'M', TIMELIB_FORMAT_MINUTE_TWO_DIGIT}, diff --git a/src/mongo/db/query/datetime/date_time_support_test.cpp b/src/mongo/db/query/datetime/date_time_support_test.cpp index 57a1c3ba42e..ddb6cebb3f0 100644 --- a/src/mongo/db/query/datetime/date_time_support_test.cpp +++ b/src/mongo/db/query/datetime/date_time_support_test.cpp @@ -1036,6 +1036,17 @@ TEST(DateFromString, CorrectlyParsesStringThatMatchesFormat) { ASSERT_EQ(input, result.getValue()); } +TEST(DateFromString, CorrectlyParsesStringWithDayFromYearFormat) { + auto input = "2017-302"; + auto expected = "2017, Day 303"; + auto inputFormat = "%Y-%j"_sd; + auto outputFormat = "%Y, Day %j"_sd; + auto date = kDefaultTimeZoneDatabase.fromString(input, kDefaultTimeZone, inputFormat); + auto result = TimeZoneDatabase::utcZone().formatDate(outputFormat, date); + ASSERT_OK(result); + ASSERT_EQ(expected, result.getValue()); +} + TEST(DateFromString, RejectsStringWithInvalidYearFormat) { ASSERT_THROWS_CODE(kDefaultTimeZoneDatabase.fromString("201", kDefaultTimeZone, "%Y"_sd), AssertionException, |