diff --git a/frontend/src/metabase/lib/i18n.js b/frontend/src/metabase/lib/i18n.js
index eeeee69e44965a0e8976f6102e2be05eedf146a6..c9552a9054dd25ef105747eb7145b2f1fc98752a 100644
--- a/frontend/src/metabase/lib/i18n.js
+++ b/frontend/src/metabase/lib/i18n.js
@@ -25,6 +25,13 @@ export function setLocalization(translationsObject) {
   moment.locale(locale);
 }
 
+// Format a fixed timestamp in local time to see if the current locale defaults
+// to using a 24 hour clock.
+export function isLocale24Hour() {
+  const formattedTime = moment("2000-01-01T13:00:00").format("LT");
+  return /^13:/.test(formattedTime);
+}
+
 // we delete msgid property since it's redundant, but have to add it back in to
 // make ttag happy
 function addMsgIds(translationsObject) {
diff --git a/frontend/src/metabase/query_builder/components/filters/pickers/HoursMinutesInput.jsx b/frontend/src/metabase/query_builder/components/filters/pickers/HoursMinutesInput.jsx
index 20e7dfd3d7e1803e8ad5b3edcf56757edc68f8ab..fdb298618ea39de278133667e7bccd991a7ddf22 100644
--- a/frontend/src/metabase/query_builder/components/filters/pickers/HoursMinutesInput.jsx
+++ b/frontend/src/metabase/query_builder/components/filters/pickers/HoursMinutesInput.jsx
@@ -2,6 +2,7 @@ import React from "react";
 
 import NumericInput from "metabase/components/NumericInput";
 import Icon from "metabase/components/Icon";
+import { isLocale24Hour } from "metabase/lib/i18n";
 
 import cx from "classnames";
 import moment from "moment";
@@ -12,7 +13,7 @@ const HoursMinutesInput = ({
   onChangeHours,
   onChangeMinutes,
   onClear,
-  is24HourMode = false,
+  is24HourMode = isLocale24Hour(),
 }) => (
   <div className="flex align-center">
     <NumericInput
diff --git a/frontend/test/metabase/lib/i18n.unit.spec.js b/frontend/test/metabase/lib/i18n.unit.spec.js
new file mode 100644
index 0000000000000000000000000000000000000000..8a31a1166543b098db7ac74dfa45d31d40c22d49
--- /dev/null
+++ b/frontend/test/metabase/lib/i18n.unit.spec.js
@@ -0,0 +1,25 @@
+import moment from "moment";
+
+import { isLocale24Hour } from "metabase/lib/i18n";
+
+describe("isLocale24Hour", () => {
+  const testCases = [
+    ["en", false],
+    ["en-us", false],
+    ["en-gb", true],
+    ["fr", true],
+    ["zh-cn", true],
+  ];
+  for (const [locale, is24] of testCases) {
+    it(`should return ${is24} for '${locale}'`, () => {
+      // save locale before changing it
+      const startingLocale = moment.locale();
+
+      moment.locale(locale);
+      expect(isLocale24Hour()).toBe(is24);
+
+      // reset locale
+      moment.locale(startingLocale);
+    });
+  }
+});