diff --git a/src/main/java/de/deadlocker8/budgetmaster/backup/GitBackupTask.java b/src/main/java/de/deadlocker8/budgetmaster/backup/GitBackupTask.java
index 0e66a82faf3d539229e6cf6dca4dc2a95ab308b5..cab69ebccd1c95f558d3c22579b8f5d25b6d51e7 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/backup/GitBackupTask.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/backup/GitBackupTask.java
@@ -2,9 +2,9 @@ package de.deadlocker8.budgetmaster.backup;
 
 import de.deadlocker8.budgetmaster.database.DatabaseService;
 import de.deadlocker8.budgetmaster.settings.SettingsService;
+import de.deadlocker8.budgetmaster.utils.DateHelper;
 import org.eclipse.jgit.api.Git;
 import org.eclipse.jgit.api.errors.GitAPIException;
-import org.joda.time.DateTime;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -54,7 +54,7 @@ public abstract class GitBackupTask extends BackupTask
 		}
 
 		LOGGER.debug("Committing changes...");
-		GitHelper.commitChanges(git, DateTime.now().toString(DATE_PATTERN));
+		GitHelper.commitChanges(git, DateHelper.getCurrentDate().toString(DATE_PATTERN));
 		return true;
 	}
 
diff --git a/src/main/java/de/deadlocker8/budgetmaster/charts/ChartSettings.java b/src/main/java/de/deadlocker8/budgetmaster/charts/ChartSettings.java
index aac9e2d9fb6f00fa6e8537fe2db7800b4d93dc97..24f6e213de51779c3be3f039a5953ee4360e04ab 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/charts/ChartSettings.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/charts/ChartSettings.java
@@ -1,6 +1,7 @@
 package de.deadlocker8.budgetmaster.charts;
 
 import de.deadlocker8.budgetmaster.filter.FilterConfiguration;
+import de.deadlocker8.budgetmaster.utils.DateHelper;
 import org.joda.time.DateTime;
 import org.springframework.format.annotation.DateTimeFormat;
 
@@ -19,7 +20,7 @@ public class ChartSettings
 
 	public static ChartSettings getDefault(FilterConfiguration filterConfiguration)
 	{
-		return new ChartSettings(ChartDisplayType.BAR, ChartGroupType.MONTH, null, DateTime.now().withDayOfMonth(1), DateTime.now().dayOfMonth().withMaximumValue(), filterConfiguration);
+		return new ChartSettings(ChartDisplayType.BAR, ChartGroupType.MONTH, null, DateHelper.getCurrentDate().withDayOfMonth(1), DateHelper.getCurrentDate().dayOfMonth().withMaximumValue(), filterConfiguration);
 	}
 
 	public ChartSettings()
diff --git a/src/main/java/de/deadlocker8/budgetmaster/controller/DatePickerController.java b/src/main/java/de/deadlocker8/budgetmaster/controller/DatePickerController.java
index 31ea8bea57b64fd9eeb6f3f0b6ea5c5ac8baf938..29549636e785b61c225b94a2a4d5bbd7339a833f 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/controller/DatePickerController.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/controller/DatePickerController.java
@@ -4,6 +4,7 @@ import de.deadlocker8.budgetmaster.services.DateFormatStyle;
 import de.deadlocker8.budgetmaster.services.DateService;
 import de.deadlocker8.budgetmaster.settings.Settings;
 import de.deadlocker8.budgetmaster.settings.SettingsService;
+import de.deadlocker8.budgetmaster.utils.DateHelper;
 import org.joda.time.DateTime;
 import org.joda.time.format.DateTimeFormat;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -66,7 +67,7 @@ public class DatePickerController extends BaseController
 	@RequestMapping(value = "/today")
 	public String today(HttpServletResponse response, @RequestParam("target") String target)
 	{
-		DateTime currentDate = DateTime.now();
+		DateTime currentDate = DateHelper.getCurrentDate();
 		response.addCookie(new Cookie(COOKIE_NAME, dateService.getDateStringNormal(currentDate)));
 		return "redirect:" + target;
 	}
diff --git a/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseService.java b/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseService.java
index 36a177eda51676a48ebe468fe9bddfb5d4205ee4..26d83ac79b0c69d979a29c99d24b6a4d18af98f1 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseService.java
@@ -21,8 +21,8 @@ import de.deadlocker8.budgetmaster.templates.Template;
 import de.deadlocker8.budgetmaster.templates.TemplateService;
 import de.deadlocker8.budgetmaster.transactions.Transaction;
 import de.deadlocker8.budgetmaster.transactions.TransactionService;
+import de.deadlocker8.budgetmaster.utils.DateHelper;
 import de.thecodelabs.utils.io.PathUtils;
-import org.joda.time.DateTime;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -248,7 +248,7 @@ public class DatabaseService
 
 	public static String getExportFileName()
 	{
-		return "BudgetMasterDatabase_" + DateTime.now().toString(BACKUP_DATE_FORMAT) + ".json";
+		return "BudgetMasterDatabase_" + DateHelper.getCurrentDate().toString(BACKUP_DATE_FORMAT) + ".json";
 	}
 
 	public BackupDatabase_v7 getDatabaseForJsonSerialization()
diff --git a/src/main/java/de/deadlocker8/budgetmaster/reports/HeaderFooterPageEvent.java b/src/main/java/de/deadlocker8/budgetmaster/reports/HeaderFooterPageEvent.java
index df1497d426b995562c9008ef240e28e7c2845466..5cd218c6996b6f36e2c190aa440dc34e1ba7c05a 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/reports/HeaderFooterPageEvent.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/reports/HeaderFooterPageEvent.java
@@ -6,9 +6,9 @@ import com.itextpdf.text.pdf.ColumnText;
 import com.itextpdf.text.pdf.PdfPageEventHelper;
 import com.itextpdf.text.pdf.PdfWriter;
 import de.deadlocker8.budgetmaster.services.DateFormatStyle;
+import de.deadlocker8.budgetmaster.utils.DateHelper;
 import de.deadlocker8.budgetmaster.utils.Strings;
 import de.thecodelabs.utils.util.Localization;
-import org.joda.time.DateTime;
 
 
 public class HeaderFooterPageEvent extends PdfPageEventHelper
@@ -25,6 +25,6 @@ public class HeaderFooterPageEvent extends PdfPageEventHelper
 
 		ColumnText.showTextAligned(writer.getDirectContent(), Element.ALIGN_CENTER, new Phrase(Localization.getString(Strings.REPORT_FOOTER_LEFT), font), 100, 25, 0);
 		ColumnText.showTextAligned(writer.getDirectContent(), Element.ALIGN_CENTER, new Phrase(Localization.getString(Strings.REPORT_FOOTER_CENTER, document.getPageNumber()), font), 300, 25, 0);
-		ColumnText.showTextAligned(writer.getDirectContent(), Element.ALIGN_CENTER, new Phrase(DateTime.now().toString(DateFormatStyle.LONG.getKey()), font), 500, 25, 0);
+		ColumnText.showTextAligned(writer.getDirectContent(), Element.ALIGN_CENTER, new Phrase(DateHelper.getCurrentDate().toString(DateFormatStyle.LONG.getKey()), font), 500, 25, 0);
 	}
 }
\ No newline at end of file
diff --git a/src/main/java/de/deadlocker8/budgetmaster/reports/settings/ReportSettings.java b/src/main/java/de/deadlocker8/budgetmaster/reports/settings/ReportSettings.java
index 9939e192a9b40e1ce7911819b62289d08892510b..b36a2af297b4b5dbfc2b9899d695e4f7fba40313 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/reports/settings/ReportSettings.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/reports/settings/ReportSettings.java
@@ -1,6 +1,7 @@
 package de.deadlocker8.budgetmaster.reports.settings;
 
 import de.deadlocker8.budgetmaster.reports.columns.ReportColumn;
+import de.deadlocker8.budgetmaster.utils.DateHelper;
 import org.joda.time.DateTime;
 import org.springframework.format.annotation.DateTimeFormat;
 
@@ -31,7 +32,7 @@ public class ReportSettings
 
 	public static ReportSettings getDefault()
 	{
-		return new ReportSettings(DateTime.now(), true, true, true);
+		return new ReportSettings(DateHelper.getCurrentDate(), true, true, true);
 	}
 
 	private ReportSettings(DateTime date, boolean includeBudget, boolean splitTables, boolean includeCategoryBudgets)
diff --git a/src/main/java/de/deadlocker8/budgetmaster/services/DateService.java b/src/main/java/de/deadlocker8/budgetmaster/services/DateService.java
index 5ffea81d817c3485ff71593587ba5d509338d6a7..eff559b215b02194248e8f999a04ac0dc725f91a 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/services/DateService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/services/DateService.java
@@ -1,6 +1,7 @@
 package de.deadlocker8.budgetmaster.services;
 
 import de.deadlocker8.budgetmaster.settings.SettingsService;
+import de.deadlocker8.budgetmaster.utils.DateHelper;
 import org.joda.time.DateTime;
 import org.joda.time.format.DateTimeFormat;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -54,7 +55,7 @@ public class DateService
 	{
 		if(cookieDate == null)
 		{
-			return DateTime.now();
+			return DateHelper.getCurrentDate();
 		}
 		else
 		{
@@ -62,11 +63,6 @@ public class DateService
 		}
 	}
 
-	public DateTime getCurrentDate()
-	{
-		return DateTime.now();
-	}
-
 	public String getDateTimeString(LocalDateTime localDateTime)
 	{
 		DateTimeFormatter formatter = DateTimeFormatter.ofPattern(DateFormatStyle.DATE_TIME.getKey()).withLocale(settingsService.getSettings().getLanguage().getLocale());
diff --git a/src/main/java/de/deadlocker8/budgetmaster/services/HelpersService.java b/src/main/java/de/deadlocker8/budgetmaster/services/HelpersService.java
index 418d89a353f9ebc1ee163b8a7ca2aac40953a0e8..bfab8d82610bfa02541c352bdd450e715e7a017f 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/services/HelpersService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/services/HelpersService.java
@@ -21,6 +21,7 @@ import de.deadlocker8.budgetmaster.tags.TagService;
 import de.deadlocker8.budgetmaster.transactions.Transaction;
 import de.deadlocker8.budgetmaster.transactions.TransactionService;
 import de.deadlocker8.budgetmaster.utils.Colors;
+import de.deadlocker8.budgetmaster.utils.DateHelper;
 import de.deadlocker8.budgetmaster.utils.LanguageType;
 import de.thecodelabs.utils.util.ColorUtilsNonJavaFX;
 import org.joda.time.DateTime;
@@ -174,7 +175,7 @@ public class HelpersService
 	public int getAccountBudget()
 	{
 		Account currentAccount = getCurrentAccount();
-		List<Transaction> transactions = transactionService.getTransactionsForAccountUntilDate(currentAccount, DateTime.now(), FilterConfiguration.DEFAULT);
+		List<Transaction> transactions = transactionService.getTransactionsForAccountUntilDate(currentAccount, DateHelper.getCurrentDate(), FilterConfiguration.DEFAULT);
 
 		int sum = 0;
 		for(Transaction transaction : transactions)
diff --git a/src/main/java/de/deadlocker8/budgetmaster/services/ImportService.java b/src/main/java/de/deadlocker8/budgetmaster/services/ImportService.java
index e08635e51fad4ed0b35c04735d88fb77fe397184..b700cd130a1403db4bdc20fb8dd86af29009308d 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/services/ImportService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/services/ImportService.java
@@ -23,7 +23,7 @@ import de.deadlocker8.budgetmaster.templates.TemplateRepository;
 import de.deadlocker8.budgetmaster.transactions.Transaction;
 import de.deadlocker8.budgetmaster.transactions.TransactionBase;
 import de.deadlocker8.budgetmaster.transactions.TransactionRepository;
-import org.joda.time.DateTime;
+import de.deadlocker8.budgetmaster.utils.DateHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -100,7 +100,7 @@ public class ImportService
 		}
 
 		LOGGER.debug("Updating repeating transactions...");
-		repeatingTransactionUpdater.updateRepeatingTransactions(DateTime.now());
+		repeatingTransactionUpdater.updateRepeatingTransactions(DateHelper.getCurrentDate());
 
 		LOGGER.debug("Importing database DONE");
 		return importResultItems;
diff --git a/src/main/java/de/deadlocker8/budgetmaster/settings/Settings.java b/src/main/java/de/deadlocker8/budgetmaster/settings/Settings.java
index 3947233ef297ed613025ee781c92648bb2bbc911..55f09482df3de2271da38528fd2a5f67935ce441 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/settings/Settings.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/settings/Settings.java
@@ -2,6 +2,7 @@ package de.deadlocker8.budgetmaster.settings;
 
 import de.deadlocker8.budgetmaster.backup.AutoBackupStrategy;
 import de.deadlocker8.budgetmaster.backup.AutoBackupTime;
+import de.deadlocker8.budgetmaster.utils.DateHelper;
 import de.deadlocker8.budgetmaster.utils.LanguageType;
 import org.joda.time.DateTime;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -56,7 +57,7 @@ public class Settings
 		defaultSettings.setShowCategoriesAsCircles(true);
 		defaultSettings.setAutoUpdateCheckEnabled(true);
 		defaultSettings.setBackupReminderActivated(true);
-		defaultSettings.setLastBackupReminderDate(DateTime.now());
+		defaultSettings.setLastBackupReminderDate(DateHelper.getCurrentDate());
 		defaultSettings.setSearchItemsPerPage(10);
 		defaultSettings.setAutoBackupStrategy(AutoBackupStrategy.NONE);
 		defaultSettings.setAutoBackupDays(1);
@@ -161,7 +162,7 @@ public class Settings
 	{
 		if(backupReminderActivated)
 		{
-			return lastBackupReminderDate.getMonthOfYear() != DateTime.now().getMonthOfYear();
+			return lastBackupReminderDate.getMonthOfYear() != DateHelper.getCurrentDate().getMonthOfYear();
 		}
 		return false;
 	}
diff --git a/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsService.java b/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsService.java
index 80e8f383585541eab43054166c419f7a5c2565bb..b9430d1454d1c65ab7bb76fc141e2a0ea75ba4c6 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsService.java
@@ -2,8 +2,8 @@ package de.deadlocker8.budgetmaster.settings;
 
 import de.deadlocker8.budgetmaster.authentication.User;
 import de.deadlocker8.budgetmaster.authentication.UserRepository;
+import de.deadlocker8.budgetmaster.utils.DateHelper;
 import de.deadlocker8.budgetmaster.utils.Strings;
-import org.joda.time.DateTime;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -126,7 +126,7 @@ public class SettingsService
 	public void updateLastBackupReminderDate()
 	{
 		Settings settings = getSettings();
-		settings.setLastBackupReminderDate(DateTime.now());
+		settings.setLastBackupReminderDate(DateHelper.getCurrentDate());
 	}
 
 	@Transactional
diff --git a/src/main/java/de/deadlocker8/budgetmaster/transactions/Transaction.java b/src/main/java/de/deadlocker8/budgetmaster/transactions/Transaction.java
index ffac192877d9146d6c8523ab495e3b4e149a2938..7d43f4618fe598448748aeb0a69ccbd1ba38abde 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/transactions/Transaction.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/transactions/Transaction.java
@@ -7,6 +7,7 @@ import de.deadlocker8.budgetmaster.categories.Category;
 import de.deadlocker8.budgetmaster.categories.CategoryType;
 import de.deadlocker8.budgetmaster.repeating.RepeatingOption;
 import de.deadlocker8.budgetmaster.tags.Tag;
+import de.deadlocker8.budgetmaster.utils.DateHelper;
 import org.joda.time.DateTime;
 import org.springframework.format.annotation.DateTimeFormat;
 
@@ -210,7 +211,7 @@ public class Transaction implements TransactionBase
 
 	public boolean isFuture()
 	{
-		return date.isAfter(DateTime.now());
+		return date.isAfter(DateHelper.getCurrentDate());
 	}
 
 	public boolean isEditable()
diff --git a/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionService.java b/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionService.java
index 57c57987cf10a73eb715d3143786367c2fece5ac..6f74ab5f16303c577f5ae19a202984d194f7b187 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionService.java
@@ -15,6 +15,7 @@ import de.deadlocker8.budgetmaster.tags.Tag;
 import de.deadlocker8.budgetmaster.tags.TagRepository;
 import de.deadlocker8.budgetmaster.tags.TagService;
 import de.deadlocker8.budgetmaster.templates.Template;
+import de.deadlocker8.budgetmaster.utils.DateHelper;
 import de.deadlocker8.budgetmaster.utils.Strings;
 import de.thecodelabs.utils.util.Localization;
 import org.joda.time.DateTime;
@@ -78,13 +79,13 @@ public class TransactionService implements Resettable
 
 	private List<Transaction> getTransactionsForMonthAndYearWithRest(Account account, int month, int year, FilterConfiguration filterConfiguration)
 	{
-		DateTime startDate = DateTime.now().withYear(year).withMonthOfYear(month).minusMonths(1).dayOfMonth().withMaximumValue();
+		DateTime startDate = DateHelper.getCurrentDate().withYear(year).withMonthOfYear(month).minusMonths(1).dayOfMonth().withMaximumValue();
 		List<Transaction> transactions = getTransactionsForMonthAndYearWithoutRest(account, month, year, filterConfiguration);
 
 		Transaction transactionRest = new Transaction();
 		transactionRest.setCategory(categoryService.findByType(CategoryType.REST));
 		transactionRest.setName(Localization.getString(Strings.CATEGORY_REST));
-		transactionRest.setDate(DateTime.now().withYear(year).withMonthOfYear(month).withDayOfMonth(1));
+		transactionRest.setDate(DateHelper.getCurrentDate().withYear(year).withMonthOfYear(month).withDayOfMonth(1));
 		transactionRest.setAmount(getRest(account, startDate));
 		transactionRest.setTags(new ArrayList<>());
 		transactions.add(transactionRest);
@@ -94,14 +95,14 @@ public class TransactionService implements Resettable
 
 	private List<Transaction> getTransactionsForMonthAndYearWithoutRest(Account account, int month, int year, FilterConfiguration filterConfiguration)
 	{
-		DateTime startDate = DateTime.now().withYear(year).withMonthOfYear(month).minusMonths(1).dayOfMonth().withMaximumValue();
-		DateTime endDate = DateTime.now().withYear(year).withMonthOfYear(month).dayOfMonth().withMaximumValue();
+		DateTime startDate = DateHelper.getCurrentDate().withYear(year).withMonthOfYear(month).minusMonths(1).dayOfMonth().withMaximumValue();
+		DateTime endDate = DateHelper.getCurrentDate().withYear(year).withMonthOfYear(month).dayOfMonth().withMaximumValue();
 		return getTransactionsForAccount(account, startDate, endDate, filterConfiguration);
 	}
 
 	public List<Transaction> getTransactionsForAccountUntilDate(Account account, DateTime date, FilterConfiguration filterConfiguration)
 	{
-		DateTime startDate = DateTime.now().withYear(1900).withMonthOfYear(1).withDayOfMonth(1);
+		DateTime startDate = DateHelper.getCurrentDate().withYear(1900).withMonthOfYear(1).withDayOfMonth(1);
 		return getTransactionsForAccount(account, startDate, date, filterConfiguration);
 	}
 
@@ -124,7 +125,7 @@ public class TransactionService implements Resettable
 
 	private int getRest(Account account, DateTime endDate)
 	{
-		DateTime startDate = DateTime.now().withYear(2000).withMonthOfYear(1).withDayOfMonth(1);
+		DateTime startDate = DateHelper.getCurrentDate().withYear(2000).withMonthOfYear(1).withDayOfMonth(1);
 		Integer restForNormalAndRepeating = transactionRepository.getRestForNormalAndRepeating(account.getID(), ISODateTimeFormat.date().print(startDate), ISODateTimeFormat.date().print(endDate));
 		Integer restForTransferSource = transactionRepository.getRestForTransferSource(account.getID(), ISODateTimeFormat.date().print(startDate), ISODateTimeFormat.date().print(endDate));
 		Integer restForTransferDestination = transactionRepository.getRestForTransferDestination(account.getID(), ISODateTimeFormat.date().print(startDate), ISODateTimeFormat.date().print(endDate));
diff --git a/src/main/java/de/deadlocker8/budgetmaster/utils/eventlistener/DateRepair.java b/src/main/java/de/deadlocker8/budgetmaster/utils/eventlistener/DateRepair.java
index ae1f64cf4b23d49eb60aa74eda52a801880723f3..6e65a0f9ab2b4586e2b077c608d2a5c0faf155cf 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/utils/eventlistener/DateRepair.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/utils/eventlistener/DateRepair.java
@@ -6,6 +6,7 @@ import de.deadlocker8.budgetmaster.repeating.RepeatingTransactionUpdater;
 import de.deadlocker8.budgetmaster.settings.SettingsService;
 import de.deadlocker8.budgetmaster.transactions.Transaction;
 import de.deadlocker8.budgetmaster.transactions.TransactionRepository;
+import de.deadlocker8.budgetmaster.utils.DateHelper;
 import org.joda.time.DateTime;
 import org.joda.time.DateTimeZone;
 import org.slf4j.Logger;
@@ -62,7 +63,7 @@ public class DateRepair
 			repairRepeatingOptionsDates();
 
 			LOGGER.debug("Re-created repeating transactions");
-			repeatingTransactionUpdater.updateRepeatingTransactions(DateTime.now());
+			repeatingTransactionUpdater.updateRepeatingTransactions(DateHelper.getCurrentDate());
 		}
 	}
 
diff --git a/src/test/java/de/deadlocker8/budgetmaster/unit/TransactionServiceDatabaseTest.java b/src/test/java/de/deadlocker8/budgetmaster/unit/TransactionServiceDatabaseTest.java
index f70237e8ea8a05623bfd2419565ff23f7b8f1613..dc4acade57cd4cf387dfbeab7866dfecaa575700 100644
--- a/src/test/java/de/deadlocker8/budgetmaster/unit/TransactionServiceDatabaseTest.java
+++ b/src/test/java/de/deadlocker8/budgetmaster/unit/TransactionServiceDatabaseTest.java
@@ -7,6 +7,7 @@ import de.deadlocker8.budgetmaster.filter.FilterConfiguration;
 import de.deadlocker8.budgetmaster.integration.helpers.SeleniumTest;
 import de.deadlocker8.budgetmaster.transactions.Transaction;
 import de.deadlocker8.budgetmaster.transactions.TransactionService;
+import de.deadlocker8.budgetmaster.utils.DateHelper;
 import org.joda.time.DateTime;
 import org.joda.time.format.DateTimeFormat;
 import org.junit.jupiter.api.Test;
@@ -71,7 +72,7 @@ class TransactionServiceDatabaseTest
 		DateTime date1 = DateTime.parse("2020-04-30", DateTimeFormat.forPattern("yyyy-MM-dd"));
 		FilterConfiguration filterConfiguration = new FilterConfiguration(true, true, true, true, true, null, null, "");
 
-		List<Transaction> transactions = transactionService.getTransactionsForAccount(accountService.getRepository().findByName("Second Account"), date1, DateTime.now(), filterConfiguration);
+		List<Transaction> transactions = transactionService.getTransactionsForAccount(accountService.getRepository().findByName("Second Account"), date1, DateHelper.getCurrentDate(), filterConfiguration);
 		assertThat(transactions).hasSize(2);
 
 		assertThat(transactions.get(0)).hasFieldOrPropertyWithValue("ID", 9);  // transfer
@@ -84,7 +85,7 @@ class TransactionServiceDatabaseTest
 		DateTime date1 = DateTime.parse("2020-04-30", DateTimeFormat.forPattern("yyyy-MM-dd"));
 		FilterConfiguration filterConfiguration = new FilterConfiguration(true, true, true, true, true, null, null, "");
 
-		List<Transaction> transactions = transactionService.getTransactionsForAccount(accountService.getRepository().findAllByType(AccountType.ALL).get(0), date1, DateTime.now(), filterConfiguration);
+		List<Transaction> transactions = transactionService.getTransactionsForAccount(accountService.getRepository().findAllByType(AccountType.ALL).get(0), date1, DateHelper.getCurrentDate(), filterConfiguration);
 		assertThat(transactions).hasSize(7);
 	}
 
diff --git a/src/test/java/de/deadlocker8/budgetmaster/unit/TransactionSpecificationsTest.java b/src/test/java/de/deadlocker8/budgetmaster/unit/TransactionSpecificationsTest.java
index 67d848d4a5b5cb4d162863156c3798e27e7db59e..bce84da4c5b320a0668b43b56071e0e7ebf8db91 100644
--- a/src/test/java/de/deadlocker8/budgetmaster/unit/TransactionSpecificationsTest.java
+++ b/src/test/java/de/deadlocker8/budgetmaster/unit/TransactionSpecificationsTest.java
@@ -16,6 +16,7 @@ import de.deadlocker8.budgetmaster.tags.TagRepository;
 import de.deadlocker8.budgetmaster.transactions.Transaction;
 import de.deadlocker8.budgetmaster.transactions.TransactionRepository;
 import de.deadlocker8.budgetmaster.transactions.TransactionSpecifications;
+import de.deadlocker8.budgetmaster.utils.DateHelper;
 import org.joda.time.DateTime;
 import org.joda.time.format.DateTimeFormat;
 import org.junit.jupiter.api.BeforeEach;
@@ -152,7 +153,7 @@ class TransactionSpecificationsTest
 	@Test
 	void getIncomesAndExpendituresAndTransfers()
 	{
-		Specification spec = TransactionSpecifications.withDynamicQuery(startDate, DateTime.now(), account, true, true, true, null, List.of(), List.of(), null);
+		Specification spec = TransactionSpecifications.withDynamicQuery(startDate, DateHelper.getCurrentDate(), account, true, true, true, null, List.of(), List.of(), null);
 
 		List<Transaction> results = transactionRepository.findAll(spec);
 		assertThat(results).hasSize(4)
@@ -165,7 +166,7 @@ class TransactionSpecificationsTest
 	@Test
 	void getIncomesAndExpenditures()
 	{
-		Specification spec = TransactionSpecifications.withDynamicQuery(startDate, DateTime.now(), account, true, true, false, null, List.of(), List.of(), null);
+		Specification spec = TransactionSpecifications.withDynamicQuery(startDate, DateHelper.getCurrentDate(), account, true, true, false, null, List.of(), List.of(), null);
 
 		List<Transaction> results = transactionRepository.findAll(spec);
 		assertThat(results).hasSize(3)
@@ -177,7 +178,7 @@ class TransactionSpecificationsTest
 	@Test
 	void getIncomes()
 	{
-		Specification spec = TransactionSpecifications.withDynamicQuery(startDate, DateTime.now(), account, true, false, false, null, List.of(), List.of(), null);
+		Specification spec = TransactionSpecifications.withDynamicQuery(startDate, DateHelper.getCurrentDate(), account, true, false, false, null, List.of(), List.of(), null);
 
 		List<Transaction> results = transactionRepository.findAll(spec);
 		assertThat(results).hasSize(1)
@@ -187,7 +188,7 @@ class TransactionSpecificationsTest
 	@Test
 	void getExpenditures()
 	{
-		Specification spec = TransactionSpecifications.withDynamicQuery(startDate, DateTime.now(), account, false, true, false, null, List.of(), List.of(), null);
+		Specification spec = TransactionSpecifications.withDynamicQuery(startDate, DateHelper.getCurrentDate(), account, false, true, false, null, List.of(), List.of(), null);
 
 		List<Transaction> results = transactionRepository.findAll(spec);
 		assertThat(results).hasSize(2)
@@ -198,7 +199,7 @@ class TransactionSpecificationsTest
 	@Test
 	void getTransfers()
 	{
-		Specification spec = TransactionSpecifications.withDynamicQuery(startDate, DateTime.now(), account, false, false, true, null, List.of(), List.of(), null);
+		Specification spec = TransactionSpecifications.withDynamicQuery(startDate, DateHelper.getCurrentDate(), account, false, false, true, null, List.of(), List.of(), null);
 
 		List<Transaction> results = transactionRepository.findAll(spec);
 		assertThat(results).hasSize(1)
@@ -208,7 +209,7 @@ class TransactionSpecificationsTest
 	@Test
 	void incomesAndExpendituresFalse()
 	{
-		Specification spec = TransactionSpecifications.withDynamicQuery(startDate, DateTime.now(), account, false, false, false, null, List.of(), List.of(), null);
+		Specification spec = TransactionSpecifications.withDynamicQuery(startDate, DateHelper.getCurrentDate(), account, false, false, false, null, List.of(), List.of(), null);
 
 		List<Transaction> results = transactionRepository.findAll(spec);
 		assertThat(results).hasSize(3)
@@ -220,7 +221,7 @@ class TransactionSpecificationsTest
 	@Test
 	void getTransferBackReferences_NoReferences()
 	{
-		Specification spec = TransactionSpecifications.withDynamicQuery(startDate, DateTime.now(), account, true, false, true, null, List.of(), List.of(), null);
+		Specification spec = TransactionSpecifications.withDynamicQuery(startDate, DateHelper.getCurrentDate(), account, true, false, true, null, List.of(), List.of(), null);
 
 		List<Transaction> results = transactionRepository.findAll(spec);
 		assertThat(results).hasSize(1)
@@ -230,7 +231,7 @@ class TransactionSpecificationsTest
 	@Test
 	void getTransferBackReferences()
 	{
-		Specification spec = TransactionSpecifications.withDynamicQuery(startDate, DateTime.now(), account2, false, false, true, null, List.of(), List.of(), null);
+		Specification spec = TransactionSpecifications.withDynamicQuery(startDate, DateHelper.getCurrentDate(), account2, false, false, true, null, List.of(), List.of(), null);
 
 		List<Transaction> results = transactionRepository.findAll(spec);
 		assertThat(results).hasSize(2)
@@ -242,7 +243,7 @@ class TransactionSpecificationsTest
 	void getTransferBackReferences_WithStartDate()
 	{
 		DateTime startDate2019 = new DateTime(2019, 1, 1, 12, 0, 0, 0);
-		Specification spec = TransactionSpecifications.withDynamicQuery(startDate2019, DateTime.now(), account2, false, false, true, null, List.of(), List.of(), null);
+		Specification spec = TransactionSpecifications.withDynamicQuery(startDate2019, DateHelper.getCurrentDate(), account2, false, false, true, null, List.of(), List.of(), null);
 
 		List<Transaction> results = transactionRepository.findAll(spec);
 		assertThat(results).isEmpty();
@@ -251,7 +252,7 @@ class TransactionSpecificationsTest
 	@Test
 	void getRepeating()
 	{
-		Specification spec = TransactionSpecifications.withDynamicQuery(startDate, DateTime.now(), account, true, true, false, true, List.of(), List.of(), null);
+		Specification spec = TransactionSpecifications.withDynamicQuery(startDate, DateHelper.getCurrentDate(), account, true, true, false, true, List.of(), List.of(), null);
 
 		List<Transaction> results = transactionRepository.findAll(spec);
 		assertThat(results).hasSize(1)
@@ -261,7 +262,7 @@ class TransactionSpecificationsTest
 	@Test
 	void noRepeating()
 	{
-		Specification spec = TransactionSpecifications.withDynamicQuery(startDate, DateTime.now(), account, true, true, true, false, List.of(), List.of(), null);
+		Specification spec = TransactionSpecifications.withDynamicQuery(startDate, DateHelper.getCurrentDate(), account, true, true, true, false, List.of(), List.of(), null);
 
 		List<Transaction> results = transactionRepository.findAll(spec);
 		assertThat(results).hasSize(3)
@@ -275,7 +276,7 @@ class TransactionSpecificationsTest
 	{
 		List<Integer> categoryIDs = new ArrayList<>();
 		categoryIDs.add(categoryUnused.getID());
-		Specification spec = TransactionSpecifications.withDynamicQuery(startDate, DateTime.now(), account, true, true, true, null, categoryIDs, List.of(), null);
+		Specification spec = TransactionSpecifications.withDynamicQuery(startDate, DateHelper.getCurrentDate(), account, true, true, true, null, categoryIDs, List.of(), null);
 
 		List<Transaction> results = transactionRepository.findAll(spec);
 		assertThat(results).isEmpty();
@@ -286,7 +287,7 @@ class TransactionSpecificationsTest
 	{
 		List<Integer> categoryIDs = new ArrayList<>();
 		categoryIDs.add(category1.getID());
-		Specification spec = TransactionSpecifications.withDynamicQuery(startDate, DateTime.now(), account, true, true, true, null, categoryIDs, List.of(), null);
+		Specification spec = TransactionSpecifications.withDynamicQuery(startDate, DateHelper.getCurrentDate(), account, true, true, true, null, categoryIDs, List.of(), null);
 
 		List<Transaction> results = transactionRepository.findAll(spec);
 		assertThat(results).hasSize(2)
@@ -297,7 +298,7 @@ class TransactionSpecificationsTest
 	@Test
 	void getByFullName()
 	{
-		Specification spec = TransactionSpecifications.withDynamicQuery(startDate, DateTime.now(), account, true, true, true, null, List.of(), List.of(), "Repeating");
+		Specification spec = TransactionSpecifications.withDynamicQuery(startDate, DateHelper.getCurrentDate(), account, true, true, true, null, List.of(), List.of(), "Repeating");
 
 		List<Transaction> results = transactionRepository.findAll(spec);
 		assertThat(results).hasSize(1)
@@ -307,7 +308,7 @@ class TransactionSpecificationsTest
 	@Test
 	void getByPartialName()
 	{
-		Specification spec = TransactionSpecifications.withDynamicQuery(startDate, DateTime.now(), account, true, true, true, null, List.of(), List.of(), "tin");
+		Specification spec = TransactionSpecifications.withDynamicQuery(startDate, DateHelper.getCurrentDate(), account, true, true, true, null, List.of(), List.of(), "tin");
 
 		List<Transaction> results = transactionRepository.findAll(spec);
 		assertThat(results).hasSize(1)
@@ -317,7 +318,7 @@ class TransactionSpecificationsTest
 	@Test
 	void getByPartialName_ExcludeTransfersWithWrongAccount()
 	{
-		Specification spec = TransactionSpecifications.withDynamicQuery(startDate, DateTime.now(), account2, true, true, true, null, List.of(), List.of(), "tion");
+		Specification spec = TransactionSpecifications.withDynamicQuery(startDate, DateHelper.getCurrentDate(), account2, true, true, true, null, List.of(), List.of(), "tion");
 
 		List<Transaction> results = transactionRepository.findAll(spec);
 		assertThat(results).hasSize(1)
@@ -330,7 +331,7 @@ class TransactionSpecificationsTest
 		List<Integer> tagIDs = new ArrayList<>();
 		tagIDs.add(tag1.getID());
 
-		Specification spec = TransactionSpecifications.withDynamicQuery(startDate, DateTime.now(), account, true, true, true, null, List.of(), tagIDs, null);
+		Specification spec = TransactionSpecifications.withDynamicQuery(startDate, DateHelper.getCurrentDate(), account, true, true, true, null, List.of(), tagIDs, null);
 
 		List<Transaction> results = transactionRepository.findAll(spec);
 		assertThat(results).hasSize(1)
@@ -344,7 +345,7 @@ class TransactionSpecificationsTest
 		tagIDs.add(tag1.getID());
 		tagIDs.add(tag2.getID());
 
-		Specification spec = TransactionSpecifications.withDynamicQuery(startDate, DateTime.now(), account, true, true, true, null, List.of(), tagIDs, null);
+		Specification spec = TransactionSpecifications.withDynamicQuery(startDate, DateHelper.getCurrentDate(), account, true, true, true, null, List.of(), tagIDs, null);
 
 		List<Transaction> results = transactionRepository.findAll(spec);
 		assertThat(results).hasSize(2)
@@ -359,7 +360,7 @@ class TransactionSpecificationsTest
 		List<Integer> tagIDs = new ArrayList<>();
 		tagIDs.add(tagUnused.getID());
 
-		Specification spec = TransactionSpecifications.withDynamicQuery(startDate, DateTime.now(), account, true, true, true, null, List.of(), tagIDs, null);
+		Specification spec = TransactionSpecifications.withDynamicQuery(startDate, DateHelper.getCurrentDate(), account, true, true, true, null, List.of(), tagIDs, null);
 
 		List<Transaction> results = transactionRepository.findAll(spec);
 		assertThat(results).isEmpty();
@@ -375,7 +376,7 @@ class TransactionSpecificationsTest
 		tagIDs.add(tag1.getID());
 		tagIDs.add(tag2.getID());
 
-		Specification spec = TransactionSpecifications.withDynamicQuery(startDate, DateTime.now(), account, false, true, true, true, categoryIDs, tagIDs, "Repeating");
+		Specification spec = TransactionSpecifications.withDynamicQuery(startDate, DateHelper.getCurrentDate(), account, false, true, true, true, categoryIDs, tagIDs, "Repeating");
 
 		List<Transaction> results = transactionRepository.findAll(spec);
 		assertThat(results).hasSize(1)