diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2f5350b..c6124da 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -56,6 +56,12 @@
 
 ### Libraries
 
+#### `dart:core`
+
+- Added `copyWith` extension method on `DateTime` (see [#24644][]).
+
+[#24644]: https://github.com/dart-lang/sdk/issues/24644
+
 #### `dart:convert`
 
 - **Breaking change** [#34233][]: The previously deprecated API
diff --git a/pkg/front_end/test/extensions/data/ambiguous/lib1.dart b/pkg/front_end/test/extensions/data/ambiguous/lib1.dart
index 0ee1710..2491d43 100644
--- a/pkg/front_end/test/extensions/data/ambiguous/lib1.dart
+++ b/pkg/front_end/test/extensions/data/ambiguous/lib1.dart
@@ -7,6 +7,7 @@
   AmbiguousExtension2,
   UnambiguousExtension1,
   async.dart.FutureExtensions,
+  core.dart.DateTimeCopyWith,
   core.dart.EnumByName,
   core.dart.EnumName]*/
 
diff --git a/pkg/front_end/test/extensions/data/ambiguous/lib2.dart b/pkg/front_end/test/extensions/data/ambiguous/lib2.dart
index 882d2fc..712cdcc 100644
--- a/pkg/front_end/test/extensions/data/ambiguous/lib2.dart
+++ b/pkg/front_end/test/extensions/data/ambiguous/lib2.dart
@@ -7,6 +7,7 @@
   AmbiguousExtension2,
   UnambiguousExtension2,
   async.dart.FutureExtensions,
+  core.dart.DateTimeCopyWith,
   core.dart.EnumByName,
   core.dart.EnumName]*/
 
diff --git a/pkg/front_end/test/extensions/data/ambiguous/main.dart b/pkg/front_end/test/extensions/data/ambiguous/main.dart
index adf03ea..8abf855 100644
--- a/pkg/front_end/test/extensions/data/ambiguous/main.dart
+++ b/pkg/front_end/test/extensions/data/ambiguous/main.dart
@@ -4,6 +4,7 @@
 
 /*library: scope=[
   async.dart.FutureExtensions,
+  core.dart.DateTimeCopyWith,
   core.dart.EnumByName,
   core.dart.EnumName,
   lib1.dart.AmbiguousExtension1,
diff --git a/pkg/front_end/test/extensions/data/as_show/lib.dart b/pkg/front_end/test/extensions/data/as_show/lib.dart
index 56d26bd..52e6a0f 100644
--- a/pkg/front_end/test/extensions/data/as_show/lib.dart
+++ b/pkg/front_end/test/extensions/data/as_show/lib.dart
@@ -5,6 +5,7 @@
 /*library: scope=[
   Extension1,
   async.dart.FutureExtensions,
+  core.dart.DateTimeCopyWith,
   core.dart.EnumByName,
   core.dart.EnumName]*/
 
diff --git a/pkg/front_end/test/extensions/data/as_show/main.dart b/pkg/front_end/test/extensions/data/as_show/main.dart
index 47a09d2..10e3b7b 100644
--- a/pkg/front_end/test/extensions/data/as_show/main.dart
+++ b/pkg/front_end/test/extensions/data/as_show/main.dart
@@ -4,6 +4,7 @@
 
 /*library: scope=[
   async.dart.FutureExtensions,
+  core.dart.DateTimeCopyWith,
   core.dart.EnumByName,
   core.dart.EnumName,
   lib.dart.Extension1,
diff --git a/pkg/front_end/test/extensions/data/as_show/origin.dart b/pkg/front_end/test/extensions/data/as_show/origin.dart
index b067a10..9de7e2d 100644
--- a/pkg/front_end/test/extensions/data/as_show/origin.dart
+++ b/pkg/front_end/test/extensions/data/as_show/origin.dart
@@ -5,6 +5,7 @@
 /*library: scope=[
   Extension2,
   async.dart.FutureExtensions,
+  core.dart.DateTimeCopyWith,
   core.dart.EnumByName,
   core.dart.EnumName]*/
 
diff --git a/pkg/front_end/test/extensions/data/explicit_this.dart b/pkg/front_end/test/extensions/data/explicit_this.dart
index 8f47acc..4776db5 100644
--- a/pkg/front_end/test/extensions/data/explicit_this.dart
+++ b/pkg/front_end/test/extensions/data/explicit_this.dart
@@ -5,6 +5,7 @@
 /*library: scope=[
   A2,
   async.dart.FutureExtensions,
+  core.dart.DateTimeCopyWith,
   core.dart.EnumByName,
   core.dart.EnumName]*/
 
diff --git a/pkg/front_end/test/extensions/data/export_twice/lib1.dart b/pkg/front_end/test/extensions/data/export_twice/lib1.dart
index c4d9386..d485b0f 100644
--- a/pkg/front_end/test/extensions/data/export_twice/lib1.dart
+++ b/pkg/front_end/test/extensions/data/export_twice/lib1.dart
@@ -5,6 +5,7 @@
 /*library: scope=[
   E,
   async.dart.FutureExtensions,
+  core.dart.DateTimeCopyWith,
   core.dart.EnumByName,
   core.dart.EnumName]*/
 
diff --git a/pkg/front_end/test/extensions/data/export_twice/lib2.dart b/pkg/front_end/test/extensions/data/export_twice/lib2.dart
index c6b5edb..e4bb85c 100644
--- a/pkg/front_end/test/extensions/data/export_twice/lib2.dart
+++ b/pkg/front_end/test/extensions/data/export_twice/lib2.dart
@@ -4,6 +4,7 @@
 
 /*library: scope=[
   async.dart.FutureExtensions,
+  core.dart.DateTimeCopyWith,
   core.dart.EnumByName,
   core.dart.EnumName]*/
 
diff --git a/pkg/front_end/test/extensions/data/export_twice/main.dart b/pkg/front_end/test/extensions/data/export_twice/main.dart
index 65aa4a0..9dd0fa6 100644
--- a/pkg/front_end/test/extensions/data/export_twice/main.dart
+++ b/pkg/front_end/test/extensions/data/export_twice/main.dart
@@ -4,6 +4,7 @@
 
 /*library: scope=[
   async.dart.FutureExtensions,
+  core.dart.DateTimeCopyWith,
   core.dart.EnumByName,
   core.dart.EnumName,
   lib1.dart.E]*/
diff --git a/pkg/front_end/test/extensions/data/export_unnamed/lib.dart b/pkg/front_end/test/extensions/data/export_unnamed/lib.dart
index 55622e5..f9ebde8 100644
--- a/pkg/front_end/test/extensions/data/export_unnamed/lib.dart
+++ b/pkg/front_end/test/extensions/data/export_unnamed/lib.dart
@@ -6,6 +6,7 @@
   NamedExtension,
   _extension#1,
   async.dart.FutureExtensions,
+  core.dart.DateTimeCopyWith,
   core.dart.EnumByName,
   core.dart.EnumName]*/
 
diff --git a/pkg/front_end/test/extensions/data/export_unnamed/main.dart b/pkg/front_end/test/extensions/data/export_unnamed/main.dart
index eafdc7d..b8680b3 100644
--- a/pkg/front_end/test/extensions/data/export_unnamed/main.dart
+++ b/pkg/front_end/test/extensions/data/export_unnamed/main.dart
@@ -4,6 +4,7 @@
 
 /*library: scope=[
   async.dart.FutureExtensions,
+  core.dart.DateTimeCopyWith,
   core.dart.EnumByName,
   core.dart.EnumName,
   lib.dart.NamedExtension]*/
diff --git a/pkg/front_end/test/extensions/data/extension_on_type_variable.dart b/pkg/front_end/test/extensions/data/extension_on_type_variable.dart
index baf80b2..f6d3d3a 100644
--- a/pkg/front_end/test/extensions/data/extension_on_type_variable.dart
+++ b/pkg/front_end/test/extensions/data/extension_on_type_variable.dart
@@ -5,6 +5,7 @@
 /*library: scope=[
   GeneralGeneric,
   async.dart.FutureExtensions,
+  core.dart.DateTimeCopyWith,
   core.dart.EnumByName,
   core.dart.EnumName]*/
 
diff --git a/pkg/front_end/test/extensions/data/implicit_this.dart b/pkg/front_end/test/extensions/data/implicit_this.dart
index a186361..de50910 100644
--- a/pkg/front_end/test/extensions/data/implicit_this.dart
+++ b/pkg/front_end/test/extensions/data/implicit_this.dart
@@ -5,6 +5,7 @@
 /*library: scope=[
   A2,
   async.dart.FutureExtensions,
+  core.dart.DateTimeCopyWith,
   core.dart.EnumByName,
   core.dart.EnumName]*/
 
diff --git a/pkg/front_end/test/extensions/data/instance_members.dart b/pkg/front_end/test/extensions/data/instance_members.dart
index 10c036b..09497f4 100644
--- a/pkg/front_end/test/extensions/data/instance_members.dart
+++ b/pkg/front_end/test/extensions/data/instance_members.dart
@@ -6,6 +6,7 @@
   A2,
   B2,
   async.dart.FutureExtensions,
+  core.dart.DateTimeCopyWith,
   core.dart.EnumByName,
   core.dart.EnumName]*/
 
diff --git a/pkg/front_end/test/extensions/data/named_declarations.dart b/pkg/front_end/test/extensions/data/named_declarations.dart
index 5c08328..c3754d4 100644
--- a/pkg/front_end/test/extensions/data/named_declarations.dart
+++ b/pkg/front_end/test/extensions/data/named_declarations.dart
@@ -8,6 +8,7 @@
   B3,
   B4,
   async.dart.FutureExtensions,
+  core.dart.DateTimeCopyWith,
   core.dart.EnumByName,
   core.dart.EnumName]*/
 
diff --git a/pkg/front_end/test/extensions/data/other_kinds.dart b/pkg/front_end/test/extensions/data/other_kinds.dart
index 1e1e0a9..0904d2a 100644
--- a/pkg/front_end/test/extensions/data/other_kinds.dart
+++ b/pkg/front_end/test/extensions/data/other_kinds.dart
@@ -5,6 +5,7 @@
 /*library: scope=[
   A2,
   async.dart.FutureExtensions,
+  core.dart.DateTimeCopyWith,
   core.dart.EnumByName,
   core.dart.EnumName]*/
 
diff --git a/pkg/front_end/test/extensions/data/part/main.dart b/pkg/front_end/test/extensions/data/part/main.dart
index f1cb1e9..07e2803 100644
--- a/pkg/front_end/test/extensions/data/part/main.dart
+++ b/pkg/front_end/test/extensions/data/part/main.dart
@@ -6,6 +6,7 @@
   Extension,
   _extension#1,
   async.dart.FutureExtensions,
+  core.dart.DateTimeCopyWith,
   core.dart.EnumByName,
   core.dart.EnumName]*/
 
diff --git a/pkg/front_end/test/extensions/data/patching/main.dart b/pkg/front_end/test/extensions/data/patching/main.dart
index f53b2a1..aec8f4a 100644
--- a/pkg/front_end/test/extensions/data/patching/main.dart
+++ b/pkg/front_end/test/extensions/data/patching/main.dart
@@ -4,6 +4,7 @@
 
 /*library: scope=[
   async.dart.FutureExtensions,
+  core.dart.DateTimeCopyWith,
   core.dart.EnumByName,
   core.dart.EnumName,
   origin.dart.Extension,
diff --git a/pkg/front_end/test/extensions/data/patching/origin.dart b/pkg/front_end/test/extensions/data/patching/origin.dart
index 34b5cfc..eceebf0 100644
--- a/pkg/front_end/test/extensions/data/patching/origin.dart
+++ b/pkg/front_end/test/extensions/data/patching/origin.dart
@@ -6,6 +6,7 @@
   Extension,
   GenericExtension,
   async.dart.FutureExtensions,
+  core.dart.DateTimeCopyWith,
   core.dart.EnumByName,
   core.dart.EnumName]*/
 
diff --git a/pkg/front_end/test/extensions/data/prefix/lib1.dart b/pkg/front_end/test/extensions/data/prefix/lib1.dart
index 19d099a..44cbbf4 100644
--- a/pkg/front_end/test/extensions/data/prefix/lib1.dart
+++ b/pkg/front_end/test/extensions/data/prefix/lib1.dart
@@ -6,6 +6,7 @@
   HiddenExtension1,
   ShownExtension1,
   async.dart.FutureExtensions,
+  core.dart.DateTimeCopyWith,
   core.dart.EnumByName,
   core.dart.EnumName]*/
 
diff --git a/pkg/front_end/test/extensions/data/prefix/lib2.dart b/pkg/front_end/test/extensions/data/prefix/lib2.dart
index dae3ef6..13f7479 100644
--- a/pkg/front_end/test/extensions/data/prefix/lib2.dart
+++ b/pkg/front_end/test/extensions/data/prefix/lib2.dart
@@ -6,6 +6,7 @@
   HiddenExtension2,
   ShownExtension2,
   async.dart.FutureExtensions,
+  core.dart.DateTimeCopyWith,
   core.dart.EnumByName,
   core.dart.EnumName]*/
 
diff --git a/pkg/front_end/test/extensions/data/prefix/lib3.dart b/pkg/front_end/test/extensions/data/prefix/lib3.dart
index f166d1f..1170398 100644
--- a/pkg/front_end/test/extensions/data/prefix/lib3.dart
+++ b/pkg/front_end/test/extensions/data/prefix/lib3.dart
@@ -5,6 +5,7 @@
 /*library: scope=[
   ShownExtension3,
   async.dart.FutureExtensions,
+  core.dart.DateTimeCopyWith,
   core.dart.EnumByName,
   core.dart.EnumName]*/
 
diff --git a/pkg/front_end/test/extensions/data/prefix/main.dart b/pkg/front_end/test/extensions/data/prefix/main.dart
index a9f5a9d..d6e80e4 100644
--- a/pkg/front_end/test/extensions/data/prefix/main.dart
+++ b/pkg/front_end/test/extensions/data/prefix/main.dart
@@ -4,6 +4,7 @@
 
 /*library: scope=[
   async.dart.FutureExtensions,
+  core.dart.DateTimeCopyWith,
   core.dart.EnumByName,
   core.dart.EnumName,
   lib1.dart.ShownExtension1,
diff --git a/pkg/front_end/test/extensions/data/reexport/lib.dart b/pkg/front_end/test/extensions/data/reexport/lib.dart
index 2b06562..735e569 100644
--- a/pkg/front_end/test/extensions/data/reexport/lib.dart
+++ b/pkg/front_end/test/extensions/data/reexport/lib.dart
@@ -4,6 +4,7 @@
 
 /*library: scope=[
   async.dart.FutureExtensions,
+  core.dart.DateTimeCopyWith,
   core.dart.EnumByName,
   core.dart.EnumName]*/
 
diff --git a/pkg/front_end/test/extensions/data/reexport/lib1.dart b/pkg/front_end/test/extensions/data/reexport/lib1.dart
index cf3ae62..f2a604f 100644
--- a/pkg/front_end/test/extensions/data/reexport/lib1.dart
+++ b/pkg/front_end/test/extensions/data/reexport/lib1.dart
@@ -6,6 +6,7 @@
   ClashingExtension,
   UniqueExtension1,
   async.dart.FutureExtensions,
+  core.dart.DateTimeCopyWith,
   core.dart.EnumByName,
   core.dart.EnumName]*/
 
diff --git a/pkg/front_end/test/extensions/data/reexport/lib2.dart b/pkg/front_end/test/extensions/data/reexport/lib2.dart
index 3059376..658b2c3 100644
--- a/pkg/front_end/test/extensions/data/reexport/lib2.dart
+++ b/pkg/front_end/test/extensions/data/reexport/lib2.dart
@@ -6,6 +6,7 @@
   ClashingExtension,
   UniqueExtension2,
   async.dart.FutureExtensions,
+  core.dart.DateTimeCopyWith,
   core.dart.EnumByName,
   core.dart.EnumName]*/
 
diff --git a/pkg/front_end/test/extensions/data/reexport/main.dart b/pkg/front_end/test/extensions/data/reexport/main.dart
index 1dfe0ae..1d9a58f 100644
--- a/pkg/front_end/test/extensions/data/reexport/main.dart
+++ b/pkg/front_end/test/extensions/data/reexport/main.dart
@@ -4,6 +4,7 @@
 
 /*library: scope=[
   async.dart.FutureExtensions,
+  core.dart.DateTimeCopyWith,
   core.dart.EnumByName,
   core.dart.EnumName,
   lib1.dart.UniqueExtension1,
diff --git a/pkg/front_end/test/extensions/data/show_hide/lib1.dart b/pkg/front_end/test/extensions/data/show_hide/lib1.dart
index 19d099a..44cbbf4 100644
--- a/pkg/front_end/test/extensions/data/show_hide/lib1.dart
+++ b/pkg/front_end/test/extensions/data/show_hide/lib1.dart
@@ -6,6 +6,7 @@
   HiddenExtension1,
   ShownExtension1,
   async.dart.FutureExtensions,
+  core.dart.DateTimeCopyWith,
   core.dart.EnumByName,
   core.dart.EnumName]*/
 
diff --git a/pkg/front_end/test/extensions/data/show_hide/lib2.dart b/pkg/front_end/test/extensions/data/show_hide/lib2.dart
index dae3ef6..13f7479 100644
--- a/pkg/front_end/test/extensions/data/show_hide/lib2.dart
+++ b/pkg/front_end/test/extensions/data/show_hide/lib2.dart
@@ -6,6 +6,7 @@
   HiddenExtension2,
   ShownExtension2,
   async.dart.FutureExtensions,
+  core.dart.DateTimeCopyWith,
   core.dart.EnumByName,
   core.dart.EnumName]*/
 
diff --git a/pkg/front_end/test/extensions/data/show_hide/main.dart b/pkg/front_end/test/extensions/data/show_hide/main.dart
index c137caa..8d64be3 100644
--- a/pkg/front_end/test/extensions/data/show_hide/main.dart
+++ b/pkg/front_end/test/extensions/data/show_hide/main.dart
@@ -4,6 +4,7 @@
 
 /*library: scope=[
   async.dart.FutureExtensions,
+  core.dart.DateTimeCopyWith,
   core.dart.EnumByName,
   core.dart.EnumName,
   lib1.dart.ShownExtension1,
diff --git a/pkg/front_end/test/extensions/data/static_members.dart b/pkg/front_end/test/extensions/data/static_members.dart
index 4f0a7b1..c3a83ab 100644
--- a/pkg/front_end/test/extensions/data/static_members.dart
+++ b/pkg/front_end/test/extensions/data/static_members.dart
@@ -6,6 +6,7 @@
   A2,
   B2,
   async.dart.FutureExtensions,
+  core.dart.DateTimeCopyWith,
   core.dart.EnumByName,
   core.dart.EnumName]*/
 
diff --git a/pkg/front_end/test/extensions/data/super.dart b/pkg/front_end/test/extensions/data/super.dart
index 3e96943..6df2f0e 100644
--- a/pkg/front_end/test/extensions/data/super.dart
+++ b/pkg/front_end/test/extensions/data/super.dart
@@ -5,6 +5,7 @@
 /*library: scope=[
   A2,
   async.dart.FutureExtensions,
+  core.dart.DateTimeCopyWith,
   core.dart.EnumByName,
   core.dart.EnumName]*/
 
diff --git a/pkg/front_end/test/extensions/data/type_variables.dart b/pkg/front_end/test/extensions/data/type_variables.dart
index 296775d..bc8f390 100644
--- a/pkg/front_end/test/extensions/data/type_variables.dart
+++ b/pkg/front_end/test/extensions/data/type_variables.dart
@@ -7,6 +7,7 @@
   A3,
   A4,
   async.dart.FutureExtensions,
+  core.dart.DateTimeCopyWith,
   core.dart.EnumByName,
   core.dart.EnumName]*/
 
diff --git a/pkg/front_end/test/extensions/data/unnamed_declarations.dart b/pkg/front_end/test/extensions/data/unnamed_declarations.dart
index ee6e095..62a63d0 100644
--- a/pkg/front_end/test/extensions/data/unnamed_declarations.dart
+++ b/pkg/front_end/test/extensions/data/unnamed_declarations.dart
@@ -9,6 +9,7 @@
   _extension#3,
   _extension#4,
   async.dart.FutureExtensions,
+  core.dart.DateTimeCopyWith,
   core.dart.EnumByName,
   core.dart.EnumName]*/
 
diff --git a/pkg/front_end/test/extensions/data/use_as_type.dart b/pkg/front_end/test/extensions/data/use_as_type.dart
index 297f763..93af7ad 100644
--- a/pkg/front_end/test/extensions/data/use_as_type.dart
+++ b/pkg/front_end/test/extensions/data/use_as_type.dart
@@ -6,6 +6,7 @@
   A2,
   B2,
   async.dart.FutureExtensions,
+  core.dart.DateTimeCopyWith,
   core.dart.EnumByName,
   core.dart.EnumName]*/
 
diff --git a/pkg/front_end/testcases/general/error_export_from_dill/main.dart.weak.expect b/pkg/front_end/testcases/general/error_export_from_dill/main.dart.weak.expect
index 7cc8544..365fa6a 100644
--- a/pkg/front_end/testcases/general/error_export_from_dill/main.dart.weak.expect
+++ b/pkg/front_end/testcases/general/error_export_from_dill/main.dart.weak.expect
@@ -156,6 +156,7 @@
   core::Expando,
   core::WeakReference,
   core::Finalizer,
+  core::DateTimeCopyWith,
   core::EnumName,
   core::EnumByName,
   core::identical,
diff --git a/pkg/front_end/testcases/general/error_export_from_dill/main.dart.weak.outline.expect b/pkg/front_end/testcases/general/error_export_from_dill/main.dart.weak.outline.expect
index 3d807d3..6477beb 100644
--- a/pkg/front_end/testcases/general/error_export_from_dill/main.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/error_export_from_dill/main.dart.weak.outline.expect
@@ -91,6 +91,7 @@
   core::Expando,
   core::WeakReference,
   core::Finalizer,
+  core::DateTimeCopyWith,
   core::EnumName,
   core::EnumByName,
   core::identical,
diff --git a/pkg/front_end/testcases/general/error_export_from_dill/main.dart.weak.transformed.expect b/pkg/front_end/testcases/general/error_export_from_dill/main.dart.weak.transformed.expect
index fc9a9ba..60b94a5 100644
--- a/pkg/front_end/testcases/general/error_export_from_dill/main.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/error_export_from_dill/main.dart.weak.transformed.expect
@@ -152,6 +152,7 @@
   core::Expando,
   core::WeakReference,
   core::Finalizer,
+  core::DateTimeCopyWith,
   core::EnumName,
   core::EnumByName,
   core::identical,
diff --git a/pkg/front_end/testcases/incremental/export_core.yaml.world.2.expect b/pkg/front_end/testcases/incremental/export_core.yaml.world.2.expect
index 33ff62c..fbc3d26 100644
--- a/pkg/front_end/testcases/incremental/export_core.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/export_core.yaml.world.2.expect
@@ -21,6 +21,7 @@
   core::ConcurrentModificationError,
   core::CyclicInitializationError,
   core::DateTime,
+  core::DateTimeCopyWith,
   core::Deprecated,
   core::Duration,
   core::Enum,
diff --git a/pkg/front_end/testcases/incremental/export_core.yaml.world.3.expect b/pkg/front_end/testcases/incremental/export_core.yaml.world.3.expect
index 99d8359..14ed11e 100644
--- a/pkg/front_end/testcases/incremental/export_core.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental/export_core.yaml.world.3.expect
@@ -21,6 +21,7 @@
   core::ConcurrentModificationError,
   core::CyclicInitializationError,
   core::DateTime,
+  core::DateTimeCopyWith,
   core::Deprecated,
   core::Duration,
   core::Enum,
diff --git a/sdk/lib/core/date_time.dart b/sdk/lib/core/date_time.dart
index 0bd6884..103e4e6 100644
--- a/sdk/lib/core/date_time.dart
+++ b/sdk/lib/core/date_time.dart
@@ -873,3 +873,58 @@
           r'(?:[ T](\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d+))?)?)?' // Time part.
           r'( ?[zZ]| ?([-+])(\d\d)(?::?(\d\d))?)?)?$'); // Timezone part.
 }
+
+/// Adds [copyWith] method to [DateTime] objects.
+@Since("2.19")
+extension DateTimeCopyWith on DateTime {
+  /// Creates a new [DateTime] from this one by updating individual properties.
+  ///
+  /// The [copyWith] method creates a new [DateTime] object with values
+  /// for the properties [DateTime.year], [DateTime.hour], etc, provided by
+  /// similarly named arguments, or using the existing value of the property
+  /// if no argument, or `null`, is provided.
+  ///
+  /// Example:
+  /// ```dart
+  /// final now = DateTime.now();
+  /// final sameTimeOnMoonLandingDay =
+  ///     now.copyWith(year: 1969, month: 07, day: 20);
+  /// ```
+  ///
+  /// Like for the [DateTime] and [DateTime.utc] constructors,
+  /// which this operation uses to create the new value,
+  /// property values are allowed to overflow or underflow the range
+  /// of the property (like a [month] outside the 1 to 12 range),
+  /// which can affect the more significant properties
+  /// (for example, a month of 13 will result in the month of January
+  /// of the next year.)
+  ///
+  /// Notice also that if the result is a local-time DateTime,
+  /// seasonal time-zone adjustments (daylight saving) can cause some
+  /// combinations of dates, hours and minutes to not exist, or to exist
+  /// more than once.
+  /// In the former case, a corresponding time in one of the two adjacent time
+  /// zones is used instead. In the latter, one of the two options is chosen.
+  DateTime copyWith({
+    int? year,
+    int? month,
+    int? day,
+    int? hour,
+    int? minute,
+    int? second,
+    int? millisecond,
+    int? microsecond,
+    bool? isUtc,
+  }) {
+    return ((isUtc ?? this.isUtc) ? DateTime.utc : DateTime.new)(
+      year ?? this.year,
+      month ?? this.month,
+      day ?? this.day,
+      hour ?? this.hour,
+      minute ?? this.minute,
+      second ?? this.second,
+      millisecond ?? this.millisecond,
+      microsecond ?? this.microsecond,
+    );
+  }
+}
diff --git a/tests/corelib/date_time_copy_with_test.dart b/tests/corelib/date_time_copy_with_test.dart
new file mode 100644
index 0000000..5e966a6
--- /dev/null
+++ b/tests/corelib/date_time_copy_with_test.dart
@@ -0,0 +1,78 @@
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import "package:expect/expect.dart";
+
+// Dart test program for DateTime.copyWith.
+
+testCopyWith(
+  DateTime original,
+  int? year,
+  int? month,
+  int? day,
+  int? hour,
+  int? minute,
+  int? second,
+  int? millisecond,
+  bool isUtc,
+) {
+  final result = original.copyWith(
+    year: year,
+    month: month,
+    day: day,
+    hour: hour,
+    minute: minute,
+    second: second,
+    millisecond: millisecond,
+    isUtc: isUtc,
+  );
+  final dateTimeConstructor = isUtc ? DateTime.utc : DateTime.new;
+  final expected = dateTimeConstructor(
+    year ?? original.year,
+    month ?? original.month,
+    day ?? original.day,
+    hour ?? original.hour,
+    minute ?? original.minute,
+    second ?? original.second,
+    millisecond ?? original.millisecond,
+  );
+
+  Expect.equals(expected, result);
+}
+
+void main() {
+  final epoch = DateTime.utc(1970, 1, 1);
+  final dst = DateTime.parse("2015-07-07T12:12:24Z");
+  final leap = DateTime.parse("2012-02-28T12:12:24");
+
+  for (var year in [null, -100, 1917, 2012]) {
+    for (var month in [null, -1, 1, 2, 12, 14]) {
+      for (var day in [null, -1, 1, 28, 29, 30, 31, 32]) {
+        for (var hour in [null, -1, 0, 23, 25]) {
+          for (var minute in [null, -1, 1, 59, 61]) {
+            for (var second in [null, -1, 1, 59, 61]) {
+              for (var millisecond in [null, -1, 1, 999, 1001]) {
+                for (var isUtc in [false, true]) {
+                  for (var base in [epoch, dst, leap]) {
+                    testCopyWith(
+                      base,
+                      year,
+                      month,
+                      day,
+                      hour,
+                      minute,
+                      second,
+                      millisecond,
+                      isUtc,
+                    );
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+}
diff --git a/tests/corelib_2/date_time_copy_with_test.dart b/tests/corelib_2/date_time_copy_with_test.dart
new file mode 100644
index 0000000..5d49909
--- /dev/null
+++ b/tests/corelib_2/date_time_copy_with_test.dart
@@ -0,0 +1,90 @@
+// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// @dart=2.9
+
+import "package:expect/expect.dart";
+
+// Dart test program for DateTime.copyWith.
+
+testCopyWith(
+  DateTime original,
+  int year,
+  int month,
+  int day,
+  int hour,
+  int minute,
+  int second,
+  int millisecond,
+  bool isUtc,
+) {
+  final result = original.copyWith(
+    year: year,
+    month: month,
+    day: day,
+    hour: hour,
+    minute: minute,
+    second: second,
+    millisecond: millisecond,
+    isUtc: isUtc,
+  );
+
+  final expected = isUtc
+      ? DateTime.utc(
+          year != null ? year : original.year,
+          month != null ? month : original.month,
+          day != null ? day : original.day,
+          hour != null ? hour : original.hour,
+          minute != null ? minute : original.minute,
+          second != null ? second : original.second,
+          millisecond != null ? millisecond : original.millisecond,
+        )
+      : DateTime(
+          year != null ? year : original.year,
+          month != null ? month : original.month,
+          day != null ? day : original.day,
+          hour != null ? hour : original.hour,
+          minute != null ? minute : original.minute,
+          second != null ? second : original.second,
+          millisecond != null ? millisecond : original.millisecond,
+        );
+
+  Expect.equals(expected, result);
+}
+
+void main() {
+  final epoch = DateTime.utc(1970, 1, 1);
+  final dst = DateTime.parse("2015-07-07T12:12:24Z");
+  final leap = DateTime.parse("2012-02-28T12:12:24");
+
+  for (var year in [null, -100, 1917, 2012]) {
+    for (var month in [null, -1, 1, 2, 12, 14]) {
+      for (var day in [null, -1, 1, 28, 29, 30, 31, 32]) {
+        for (var hour in [null, -1, 0, 23, 25]) {
+          for (var minute in [null, -1, 1, 59, 61]) {
+            for (var second in [null, -1, 1, 59, 61]) {
+              for (var millisecond in [null, -1, 1, 999, 1001]) {
+                for (var isUtc in [false, true]) {
+                  for (var base in [epoch, dst, leap]) {
+                    testCopyWith(
+                      base,
+                      year,
+                      month,
+                      day,
+                      hour,
+                      minute,
+                      second,
+                      millisecond,
+                      isUtc,
+                    );
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+}
