Once you have data into Date objects in VB, you don't have to worry about globalization until you compare something to it or try to export it.
This is fine:
Dim FirstDate as Date = Date.UtcNow() 'or this: = NewDate (2008,09,10)'
Dim SecondDate as Date
SecondDate = FirstDate.AddDays(1)
This pulls in the globalization rules and prints in the current thread's culture format:
HeaderLabel.Text = SecondDate.ToString()
This is bad:
Dim BadDate as Date = CDate("2/20/2000")
Actually--even that is OK if you force CDate in that case to use the right culture (InvariantCulture):
Dim OkButBadPracticeDate as Date = CDate("2/20/2000", CultureInfo.InvariantCulture)
If you want to force everything to a particular culture, you need to set the executing thread culture and UI culture to the desired culture (en-US, invariant, etc.).
Make sure you aren't doing any work with dates as strings--make sure they are actual Date objects!