diff --git a/src/dicognito/anonymizer.py b/src/dicognito/anonymizer.py
index 80f8b54..b0f6a8b 100644
--- a/src/dicognito/anonymizer.py
+++ b/src/dicognito/anonymizer.py
@@ -12,7 +12,6 @@ from dicognito.unwantedelements import UnwantedElementsStripper
 from dicognito.randomizer import Randomizer
 
 import pydicom
-import random
 
 
 class Anonymizer:
@@ -58,8 +57,14 @@ class Anonymizer:
         """
         minimum_offset_hours = 62 * 24
         maximum_offset_hours = 730 * 24
+
         randomizer = Randomizer(seed)
+
+        date_offset_hours = -(
+            randomizer.to_int("date_offset") % (maximum_offset_hours - minimum_offset_hours) + minimum_offset_hours
+        )
         address_anonymizer = AddressAnonymizer(randomizer)
+
         self._element_handlers = [
             UnwantedElementsStripper(
                 "BranchOfService",
@@ -97,7 +102,7 @@ class Anonymizer:
             EquipmentAnonymizer(address_anonymizer),
             FixedValueAnonymizer("RequestingService", ""),
             FixedValueAnonymizer("CurrentPatientLocation", ""),
-            DateTimeAnonymizer(-random.randint(minimum_offset_hours, maximum_offset_hours)),
+            DateTimeAnonymizer(date_offset_hours),
         ]
 
     def anonymize(self, dataset):
diff --git a/src/dicognito/release_notes.md b/src/dicognito/release_notes.md
index e9933be..4a72ac6 100644
--- a/src/dicognito/release_notes.md
+++ b/src/dicognito/release_notes.md
@@ -8,6 +8,9 @@
 - Deflated files are corrupt when anonymized from the command line
   ([#80](https://github.com/blairconrad/dicognito/issues/80))
 
+- Date/time offset is not always the same for a given seed
+  ([#86](https://github.com/blairconrad/dicognito/issues/86))
+
 
 ## 0.10.0
 

Date/time offset is not always the same for a given seed
When anonymizing using a set seed, the date (time) offsets will sometimes vary.
To see this, anonymize an object a few times with the same seed.
This is the reason that `test_multivalued_date_and_time_pair_gets_anonymized` fails from time to time.
diff --git a/tests/test_anonymize_single_instance.py b/tests/test_anonymize_single_instance.py
index 23a05bc..5cffe58 100644
--- a/tests/test_anonymize_single_instance.py
+++ b/tests/test_anonymize_single_instance.py
@@ -452,6 +452,25 @@ def test_multivalued_date_and_time_pair_gets_anonymized():
     assert len(new_time) == len(original_time)
 
 
+def test_multivalued_date_and_time_pair_gets_anonymized_same_with_same_seed():
+    with load_test_instance() as dataset1, load_test_instance() as dataset2:
+        dataset1.DateOfLastCalibration = original_date = ["20010401", "20010402"]
+        dataset1.TimeOfLastCalibration = original_time = ["120000", "135959"]
+        dataset2.DateOfLastCalibration = original_date
+        dataset2.TimeOfLastCalibration = original_time
+
+        Anonymizer(seed="").anonymize(dataset1)
+        Anonymizer(seed="").anonymize(dataset2)
+
+        new_date1 = dataset1.DateOfLastCalibration
+        new_time1 = dataset1.TimeOfLastCalibration
+        new_date2 = dataset2.DateOfLastCalibration
+        new_time2 = dataset2.TimeOfLastCalibration
+
+    assert new_date1 == new_date2
+    assert new_time1 == new_time2
+
+
 def test_issue_date_of_imaging_service_request_gets_anonymized():
     original_datetime = datetime.datetime(1974, 11, 3, 12, 15, 58)
     original_date_string = original_datetime.strftime("%Y%m%d")

pip install -e .[dev]
parse_log_pytest
pytest
pytest pytest-black pydicom>=2.0.0rc1 flake8 pep8-naming pytest-flake8
apt-get update apt-get install -y gcc
3.7
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
attrs @ file:///croot/attrs_1668696182826/work
black==23.3.0
certifi @ file:///croot/certifi_1671487769961/work/certifi
click==8.1.8
-e git+https://github.com/blairconrad/dicognito.git@2a4dd89edfd89504aaff1aeef9faf4b135d33e7c#egg=dicognito
flake8==5.0.4
flit_core @ file:///opt/conda/conda-bld/flit-core_1644941570762/work/source/flit_core
importlib-metadata==4.2.0
iniconfig @ file:///home/linux1/recipes/ci/iniconfig_1610983019677/work
mccabe==0.7.0
mypy-extensions==1.0.0
packaging @ file:///croot/packaging_1671697413597/work
pathspec==0.11.2
pep8-naming==0.14.0
platformdirs==4.0.0
pluggy @ file:///tmp/build/80754af9/pluggy_1648042572264/work
py @ file:///opt/conda/conda-bld/py_1644396412707/work
pycodestyle==2.9.1
pydicom==2.4.4
pyflakes==2.5.0
pytest==7.1.2
pytest-black==0.6.0
pytest-flake8==1.1.3
toml==0.10.2
tomli @ file:///opt/conda/conda-bld/tomli_1657175507142/work
typed-ast==1.5.5
typing_extensions==4.7.1
zipp @ file:///croot/zipp_1672387121353/work

name: dicognito
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - attrs=22.1.0=py37h06a4308_0
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2022.12.7=py37h06a4308_0
  - flit-core=3.6.0=pyhd3eb1b0_0
  - importlib_metadata=4.11.3=hd3eb1b0_0
  - iniconfig=1.1.1=pyhd3eb1b0_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - packaging=22.0=py37h06a4308_0
  - pip=22.3.1=py37h06a4308_0
  - pluggy=1.0.0=py37h06a4308_1
  - py=1.11.0=pyhd3eb1b0_0
  - pytest=7.1.2=py37h06a4308_0
  - python=3.7.16=h7a1cb2a_0
  - readline=8.2=h5eee18b_0
  - setuptools=65.6.3=py37h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - tomli=2.0.1=py37h06a4308_0
  - wheel=0.38.4=py37h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zipp=3.11.0=py37h06a4308_0
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - black==23.3.0
      - click==8.1.8
      - dicognito==0.10.0
      - flake8==5.0.4
      - importlib-metadata==4.2.0
      - mccabe==0.7.0
      - mypy-extensions==1.0.0
      - pathspec==0.11.2
      - pep8-naming==0.14.0
      - platformdirs==4.0.0
      - pycodestyle==2.9.1
      - pydicom==2.4.4
      - pyflakes==2.5.0
      - pytest-black==0.6.0
      - pytest-flake8==1.1.3
      - toml==0.10.2
      - typed-ast==1.5.5
      - typing-extensions==4.7.1
prefix: /opt/conda/envs/dicognito

tests/test_anonymize_single_instance.py::test_multivalued_date_and_time_pair_gets_anonymized_same_with_same_seed
tests/test_anonymize_single_instance.py::test_other_patient_ids_anonymized_to_same_number_of_ids[1] tests/test_anonymize_single_instance.py::test_other_patient_names_anonymized_to_same_number_of_names[1]
tests/test_anonymize_single_instance.py::test_minimal_instance_anonymizes_safely tests/test_anonymize_single_instance.py::test_nonidentifying_uis_are_left_alone[file_meta.MediaStorageSOPClassUID] tests/test_anonymize_single_instance.py::test_nonidentifying_uis_are_left_alone[file_meta.TransferSyntaxUID] tests/test_anonymize_single_instance.py::test_nonidentifying_uis_are_left_alone[file_meta.ImplementationClassUID] tests/test_anonymize_single_instance.py::test_nonidentifying_uis_are_left_alone[SOPClassUID] tests/test_anonymize_single_instance.py::test_nonidentifying_uis_are_left_alone[SourceImageSequence[0].ReferencedSOPClassUID] tests/test_anonymize_single_instance.py::test_identifying_uis_are_updated[file_meta.MediaStorageSOPInstanceUID] tests/test_anonymize_single_instance.py::test_identifying_uis_are_updated[SOPInstanceUID] tests/test_anonymize_single_instance.py::test_identifying_uis_are_updated[SourceImageSequence[0].ReferencedSOPInstanceUID] tests/test_anonymize_single_instance.py::test_identifying_uis_are_updated[StudyInstanceUID] tests/test_anonymize_single_instance.py::test_identifying_uis_are_updated[SeriesInstanceUID] tests/test_anonymize_single_instance.py::test_identifying_uis_are_updated[FrameOfReferenceUID] tests/test_anonymize_single_instance.py::test_repeated_identifying_uis_get_same_values[file_meta.MediaStorageSOPInstanceUID-SOPInstanceUID] tests/test_anonymize_single_instance.py::test_ids_are_anonymized[AccessionNumber] tests/test_anonymize_single_instance.py::test_ids_are_anonymized[FillerOrderNumberImagingServiceRequest] tests/test_anonymize_single_instance.py::test_ids_are_anonymized[FillerOrderNumberImagingServiceRequestRetired] tests/test_anonymize_single_instance.py::test_ids_are_anonymized[FillerOrderNumberProcedure] tests/test_anonymize_single_instance.py::test_ids_are_anonymized[IssuerOfPatientID] tests/test_anonymize_single_instance.py::test_ids_are_anonymized[OtherPatientIDs] tests/test_anonymize_single_instance.py::test_ids_are_anonymized[OtherPatientIDsSequence[0].PatientID] tests/test_anonymize_single_instance.py::test_ids_are_anonymized[OtherPatientIDsSequence[0].IssuerOfPatientID] tests/test_anonymize_single_instance.py::test_ids_are_anonymized[OtherPatientIDsSequence[1].PatientID] tests/test_anonymize_single_instance.py::test_ids_are_anonymized[OtherPatientIDsSequence[1].IssuerOfPatientID] tests/test_anonymize_single_instance.py::test_ids_are_anonymized[PatientID] tests/test_anonymize_single_instance.py::test_ids_are_anonymized[PerformedProcedureStepID] tests/test_anonymize_single_instance.py::test_ids_are_anonymized[PlacerOrderNumberImagingServiceRequest] tests/test_anonymize_single_instance.py::test_ids_are_anonymized[PlacerOrderNumberImagingServiceRequestRetired] tests/test_anonymize_single_instance.py::test_ids_are_anonymized[PlacerOrderNumberProcedure] tests/test_anonymize_single_instance.py::test_ids_are_anonymized[RequestAttributesSequence[0].RequestedProcedureID] tests/test_anonymize_single_instance.py::test_ids_are_anonymized[RequestAttributesSequence[0].ScheduledProcedureStepID] tests/test_anonymize_single_instance.py::test_ids_are_anonymized[ScheduledProcedureStepID] tests/test_anonymize_single_instance.py::test_ids_are_anonymized[StudyID] tests/test_anonymize_single_instance.py::test_other_patient_ids_anonymized_to_same_number_of_ids[2] tests/test_anonymize_single_instance.py::test_other_patient_ids_anonymized_to_same_number_of_ids[3] tests/test_anonymize_single_instance.py::test_issuer_of_patient_id_changed_if_not_empty tests/test_anonymize_single_instance.py::test_issuer_of_patient_id_not_added_if_empty tests/test_anonymize_single_instance.py::test_female_patient_name_gets_anonymized tests/test_anonymize_single_instance.py::test_male_patient_name_gets_anonymized tests/test_anonymize_single_instance.py::test_sex_other_patient_name_gets_anonymized tests/test_anonymize_single_instance.py::test_other_patient_names_anonymized_to_same_number_of_names[2] tests/test_anonymize_single_instance.py::test_other_patient_names_anonymized_to_same_number_of_names[3] tests/test_anonymize_single_instance.py::test_non_patient_names_get_anonymized[NameOfPhysiciansReadingStudy] tests/test_anonymize_single_instance.py::test_non_patient_names_get_anonymized[OperatorsName] tests/test_anonymize_single_instance.py::test_non_patient_names_get_anonymized[PatientBirthName] tests/test_anonymize_single_instance.py::test_non_patient_names_get_anonymized[PatientMotherBirthName] tests/test_anonymize_single_instance.py::test_non_patient_names_get_anonymized[PerformingPhysicianName] tests/test_anonymize_single_instance.py::test_non_patient_names_get_anonymized[ReferringPhysicianName] tests/test_anonymize_single_instance.py::test_non_patient_names_get_anonymized[RequestingPhysician] tests/test_anonymize_single_instance.py::test_non_patient_names_get_anonymized[ResponsiblePerson] tests/test_anonymize_single_instance.py::test_patient_address_gets_anonymized tests/test_anonymize_single_instance.py::test_extra_patient_attributes_are_removed[Occupation] tests/test_anonymize_single_instance.py::test_extra_patient_attributes_are_removed[PatientInsurancePlanCodeSequence] tests/test_anonymize_single_instance.py::test_extra_patient_attributes_are_removed[MilitaryRank] tests/test_anonymize_single_instance.py::test_extra_patient_attributes_are_removed[BranchOfService] tests/test_anonymize_single_instance.py::test_extra_patient_attributes_are_removed[PatientTelephoneNumbers] tests/test_anonymize_single_instance.py::test_extra_patient_attributes_are_removed[PatientTelecomInformation] tests/test_anonymize_single_instance.py::test_extra_patient_attributes_are_removed[PatientReligiousPreference] tests/test_anonymize_single_instance.py::test_extra_patient_attributes_are_removed[MedicalRecordLocator] tests/test_anonymize_single_instance.py::test_extra_patient_attributes_are_removed[ReferencedPatientPhotoSequence] tests/test_anonymize_single_instance.py::test_extra_patient_attributes_are_removed[ResponsibleOrganization] tests/test_anonymize_single_instance.py::test_equipment_gets_anonymized tests/test_anonymize_single_instance.py::test_requesting_service_gets_anonymized tests/test_anonymize_single_instance.py::test_current_patient_location_gets_anonymized tests/test_anonymize_single_instance.py::test_dates_and_times_get_anonymized_when_both_are_present[AcquisitionDate] tests/test_anonymize_single_instance.py::test_dates_and_times_get_anonymized_when_both_are_present[ContentDate] tests/test_anonymize_single_instance.py::test_dates_and_times_get_anonymized_when_both_are_present[InstanceCreationDate] tests/test_anonymize_single_instance.py::test_dates_and_times_get_anonymized_when_both_are_present[PatientBirthDate] tests/test_anonymize_single_instance.py::test_dates_and_times_get_anonymized_when_both_are_present[PerformedProcedureStepStartDate] tests/test_anonymize_single_instance.py::test_dates_and_times_get_anonymized_when_both_are_present[SeriesDate] tests/test_anonymize_single_instance.py::test_dates_and_times_get_anonymized_when_both_are_present[StudyDate] tests/test_anonymize_single_instance.py::test_date_gets_anonymized_when_there_is_no_time tests/test_anonymize_single_instance.py::test_date_gets_anonymized_when_date_has_various_lengths[20180202] tests/test_anonymize_single_instance.py::test_date_gets_anonymized_when_date_has_various_lengths[199901] tests/test_anonymize_single_instance.py::test_date_gets_anonymized_when_date_has_various_lengths[1983] tests/test_anonymize_single_instance.py::test_date_gets_anonymized_when_time_has_various_lengths[] tests/test_anonymize_single_instance.py::test_date_gets_anonymized_when_time_has_various_lengths[07] tests/test_anonymize_single_instance.py::test_date_gets_anonymized_when_time_has_various_lengths[0911] tests/test_anonymize_single_instance.py::test_date_gets_anonymized_when_time_has_various_lengths[131517] tests/test_anonymize_single_instance.py::test_date_gets_anonymized_when_time_has_various_lengths[192123.1] tests/test_anonymize_single_instance.py::test_date_gets_anonymized_when_time_has_various_lengths[192123.12] tests/test_anonymize_single_instance.py::test_date_gets_anonymized_when_time_has_various_lengths[192123.123] tests/test_anonymize_single_instance.py::test_date_gets_anonymized_when_time_has_various_lengths[192123.1234] tests/test_anonymize_single_instance.py::test_date_gets_anonymized_when_time_has_various_lengths[192123.12345] tests/test_anonymize_single_instance.py::test_date_gets_anonymized_when_time_has_various_lengths[192123.123456] tests/test_anonymize_single_instance.py::test_multivalued_date_with_no_time_pair_gets_anonymized tests/test_anonymize_single_instance.py::test_multivalued_date_and_time_pair_gets_anonymized tests/test_anonymize_single_instance.py::test_issue_date_of_imaging_service_request_gets_anonymized tests/test_anonymize_single_instance.py::test_datetime_gets_anonymized[AcquisitionDateTime] tests/test_anonymize_single_instance.py::test_datetime_gets_anonymized[FrameReferenceDateTime] tests/test_anonymize_single_instance.py::test_datetime_gets_anonymized[FrameAcquisitionDateTime] tests/test_anonymize_single_instance.py::test_datetime_gets_anonymized[StartAcquisitionDateTime] tests/test_anonymize_single_instance.py::test_datetime_gets_anonymized[EndAcquisitionDateTime] tests/test_anonymize_single_instance.py::test_datetime_gets_anonymized[PerformedProcedureStepStartDateTime] tests/test_anonymize_single_instance.py::test_datetime_gets_anonymized[PerformedProcedureStepEndDateTime] tests/test_anonymize_single_instance.py::test_datetime_of_various_lengths_gets_anonymized[1947] tests/test_anonymize_single_instance.py::test_datetime_of_various_lengths_gets_anonymized[194711] tests/test_anonymize_single_instance.py::test_datetime_of_various_lengths_gets_anonymized[19471103] tests/test_anonymize_single_instance.py::test_datetime_of_various_lengths_gets_anonymized[1947110307] tests/test_anonymize_single_instance.py::test_datetime_of_various_lengths_gets_anonymized[194711030911] tests/test_anonymize_single_instance.py::test_datetime_of_various_lengths_gets_anonymized[19471103131517] tests/test_anonymize_single_instance.py::test_datetime_of_various_lengths_gets_anonymized[19471103192123.1] tests/test_anonymize_single_instance.py::test_datetime_of_various_lengths_gets_anonymized[19471103192123.12] tests/test_anonymize_single_instance.py::test_datetime_of_various_lengths_gets_anonymized[19471103192123.123] tests/test_anonymize_single_instance.py::test_datetime_of_various_lengths_gets_anonymized[19471103192123.1234] tests/test_anonymize_single_instance.py::test_datetime_of_various_lengths_gets_anonymized[19471103192123.12345] tests/test_anonymize_single_instance.py::test_datetime_of_various_lengths_gets_anonymized[19471103192123.123456] tests/test_anonymize_single_instance.py::test_multivalued_datetime_gets_anonymized tests/test_anonymize_single_instance.py::test_no_sex_still_changes_patient_name tests/test_anonymize_single_instance.py::test_deidentification_method_set_properly[None-DICOGNITO] tests/test_anonymize_single_instance.py::test_deidentification_method_set_properly[DICOGNITO-DICOGNITO] tests/test_anonymize_single_instance.py::test_deidentification_method_set_properly[SOMETHINGELSE-expected2] tests/test_anonymize_single_instance.py::test_deidentification_method_set_properly[SOMETHING\\SOMETHINGELSE-expected3] tests/test_anonymize_single_instance.py::test_deidentification_method_set_properly[DICOGNITO\\SOMETHINGELSE-expected4] tests/test_anonymize_single_instance.py::test_patient_identity_removed[None-None-None] tests/test_anonymize_single_instance.py::test_patient_identity_removed[None-YES-None] tests/test_anonymize_single_instance.py::test_patient_identity_removed[None-NO-YES] tests/test_anonymize_single_instance.py::test_patient_identity_removed[NO-None-NO] tests/test_anonymize_single_instance.py::test_patient_identity_removed[NO-YES-NO] tests/test_anonymize_single_instance.py::test_patient_identity_removed[NO-NO-YES] tests/test_anonymize_single_instance.py::test_patient_identity_removed[YES-None-YES] tests/test_anonymize_single_instance.py::test_patient_identity_removed[YES-YES-YES] tests/test_anonymize_single_instance.py::test_patient_identity_removed[YES-NO-YES]
src/dicognito/anonymizer.py src/dicognito/release_notes.md
src/dicognito/anonymizer.py src/dicognito/release_notes.md