473,378 Members | 1,138 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,378 software developers and data experts.

TimeZone and DateTime - what were they thinking?

TimeZone - the only instance you can get is one representing the local time
zone
DateTime - cannot represent a time before 00:00:00 1 Jan 1 CE

What were they thinking? This is a serious question - can anyone come up
with a good reason for these incredible design restrictions?

Michael Brumm http://michaelbrumm.com has produced a fix for the first
problem with his SimpleTimeZone class - good on you, Michael!

Any thoughts on how to deal with the second problem?

Cheers

- rick cameron

Jul 21 '05 #1
9 3490
Hi Rick! Long time no see....

For #1, you already know the answer -- it is based on the OS support, which
has this limitation. I do like Michael's SimpleTimeZone, but there are still
issues that are kind of inherent in some of the fundamental instabilities of
time zones as a whole. The most important note is that Michael himself
recommends always using UTC and then converting to local time for display
ONLY -- which is what MS had advocated since the beginning, what they use in
AD and email, and what actually causes the SimpleTimeZone to be able (in
most cases) from a requirement to an optional cool feature.

For #2, its hard to understand the meaning of Gregorian calendar dates
before the calendar existed. Maybe you could explain the actual scenario and
how you would account for the lack of the actual calendar for the dates you
want to represent?
--
MichKa [MS]

This posting is provided "AS IS" with
no warranties, and confers no rights.
"rick cameron" <ri**********@decisionscrystal.com> wrote in message
news:%2****************@TK2MSFTNGP12.phx.gbl...
TimeZone - the only instance you can get is one representing the local time zone
DateTime - cannot represent a time before 00:00:00 1 Jan 1 CE

What were they thinking? This is a serious question - can anyone come up
with a good reason for these incredible design restrictions?

Michael Brumm http://michaelbrumm.com has produced a fix for the first
problem with his SimpleTimeZone class - good on you, Michael!

Any thoughts on how to deal with the second problem?

Cheers

- rick cameron

Jul 21 '05 #2
Hi Rick! Long time no see....

For #1, you already know the answer -- it is based on the OS support, which
has this limitation. I do like Michael's SimpleTimeZone, but there are still
issues that are kind of inherent in some of the fundamental instabilities of
time zones as a whole. The most important note is that Michael himself
recommends always using UTC and then converting to local time for display
ONLY -- which is what MS had advocated since the beginning, what they use in
AD and email, and what actually causes the SimpleTimeZone to be able (in
most cases) from a requirement to an optional cool feature.

For #2, its hard to understand the meaning of Gregorian calendar dates
before the calendar existed. Maybe you could explain the actual scenario and
how you would account for the lack of the actual calendar for the dates you
want to represent?
--
MichKa [MS]

This posting is provided "AS IS" with
no warranties, and confers no rights.
"rick cameron" <ri**********@decisionscrystal.com> wrote in message
news:%2****************@TK2MSFTNGP12.phx.gbl...
TimeZone - the only instance you can get is one representing the local time zone
DateTime - cannot represent a time before 00:00:00 1 Jan 1 CE

What were they thinking? This is a serious question - can anyone come up
with a good reason for these incredible design restrictions?

Michael Brumm http://michaelbrumm.com has produced a fix for the first
problem with his SimpleTimeZone class - good on you, Michael!

Any thoughts on how to deal with the second problem?

Cheers

- rick cameron

Jul 21 '05 #3
Hi again, Michael

#1 - It's too bad that this is one of the places where the .NET Framework
designers decided to limit themselves to what is supported by the O/S,
rather than providing an extended implementation that fill out the model to
its logical conclusion. A scenario where this would be really useful is when
software is running on a server and must format a time according to the
conventions appropriate for a remote client - including time zone.

#2 - The DateTime class already supports dates that go back before the
earliest date that can be represented in any of the Win32 and Ole formats.
It goes back to well before the introduction of the Gregorian calendar
(which happened around 1750). But it stops, rather arbitrarily, at 1 Jan 1
CE. If you're going back that far, why not support dates BCE up to the limit
of the implementation?

This limitation makes it impossible to work with dates before year 3761 in
the Hebrew calendar. (Actually, the .NET implementation of the Hebrew
calendar is even more limited - it only works with dates between years 5343
and 6000).

The implementation of DateTime and of date formatting code obviously extends
what's available in Win32 or Ole - so why impose these arbitrary limits?

Cheers

- rick

"Michael (michka) Kaplan [MS]" <mi*****@online.microsoft.com> wrote in
message news:ed**************@tk2msftngp13.phx.gbl...
Hi Rick! Long time no see....

For #1, you already know the answer -- it is based on the OS support, which has this limitation. I do like Michael's SimpleTimeZone, but there are still issues that are kind of inherent in some of the fundamental instabilities of time zones as a whole. The most important note is that Michael himself
recommends always using UTC and then converting to local time for display
ONLY -- which is what MS had advocated since the beginning, what they use in AD and email, and what actually causes the SimpleTimeZone to be able (in
most cases) from a requirement to an optional cool feature.

For #2, its hard to understand the meaning of Gregorian calendar dates
before the calendar existed. Maybe you could explain the actual scenario and how you would account for the lack of the actual calendar for the dates you want to represent?
--
MichKa [MS]

This posting is provided "AS IS" with
no warranties, and confers no rights.
"rick cameron" <ri**********@decisionscrystal.com> wrote in message
news:%2****************@TK2MSFTNGP12.phx.gbl...
TimeZone - the only instance you can get is one representing the local

time
zone
DateTime - cannot represent a time before 00:00:00 1 Jan 1 CE

What were they thinking? This is a serious question - can anyone come up
with a good reason for these incredible design restrictions?

Michael Brumm http://michaelbrumm.com has produced a fix for the first
problem with his SimpleTimeZone class - good on you, Michael!

Any thoughts on how to deal with the second problem?

Cheers

- rick cameron


Jul 21 '05 #4
Hi Rick,

Generally, we use the B.C. calenders seldomly. So the DateTime structure is
designed for convenience. If you need to represent the A.D. dates you can
try the System.Globalization.GregorianCalendar class.

Please refer to the following link for more information:

http://msdn.microsoft.com/library/de...us/cpref/html/
frlrfsystemglobalizationgregoriancalendarclasstopi c.asp

Kevin Yu
=======
"This posting is provided "AS IS" with no warranties, and confers no
rights."

--------------------
| From: "rick cameron" <ri**********@decisionscrystal.com>
| References: <#1**************@TK2MSFTNGP12.phx.gbl>
<ed**************@tk2msftngp13.phx.gbl>
| Subject: Re: TimeZone and DateTime - what were they thinking?
| Date: Mon, 13 Oct 2003 21:04:50 -0700
| Lines: 85
| X-Priority: 3
| X-MSMail-Priority: Normal
| X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
| X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
| Message-ID: <#6**************@TK2MSFTNGP09.phx.gbl>
| Newsgroups:
microsoft.public.dotnet.framework,microsoft.public .dotnet.framework.clr,micr
osoft.public.dotnet.general
| NNTP-Posting-Host: d142-173-9-56.bchsia.telus.net 142.173.9.56
| Path: cpmsftngxa06.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFTN GP09.phx.gbl
| Xref: cpmsftngxa06.phx.gbl microsoft.public.dotnet.framework.clr:8293
microsoft.public.dotnet.general:111703
microsoft.public.dotnet.framework:56069
| X-Tomcat-NG: microsoft.public.dotnet.general
|
| Hi again, Michael
|
| #1 - It's too bad that this is one of the places where the .NET Framework
| designers decided to limit themselves to what is supported by the O/S,
| rather than providing an extended implementation that fill out the model
to
| its logical conclusion. A scenario where this would be really useful is
when
| software is running on a server and must format a time according to the
| conventions appropriate for a remote client - including time zone.
|
| #2 - The DateTime class already supports dates that go back before the
| earliest date that can be represented in any of the Win32 and Ole formats.
| It goes back to well before the introduction of the Gregorian calendar
| (which happened around 1750). But it stops, rather arbitrarily, at 1 Jan 1
| CE. If you're going back that far, why not support dates BCE up to the
limit
| of the implementation?
|
| This limitation makes it impossible to work with dates before year 3761 in
| the Hebrew calendar. (Actually, the .NET implementation of the Hebrew
| calendar is even more limited - it only works with dates between years
5343
| and 6000).
|
| The implementation of DateTime and of date formatting code obviously
extends
| what's available in Win32 or Ole - so why impose these arbitrary limits?
|
| Cheers
|
| - rick
|
| "Michael (michka) Kaplan [MS]" <mi*****@online.microsoft.com> wrote in
| message news:ed**************@tk2msftngp13.phx.gbl...
| > Hi Rick! Long time no see....
| >
| > For #1, you already know the answer -- it is based on the OS support,
| which
| > has this limitation. I do like Michael's SimpleTimeZone, but there are
| still
| > issues that are kind of inherent in some of the fundamental
instabilities
| of
| > time zones as a whole. The most important note is that Michael himself
| > recommends always using UTC and then converting to local time for
display
| > ONLY -- which is what MS had advocated since the beginning, what they
use
| in
| > AD and email, and what actually causes the SimpleTimeZone to be able (in
| > most cases) from a requirement to an optional cool feature.
| >
| > For #2, its hard to understand the meaning of Gregorian calendar dates
| > before the calendar existed. Maybe you could explain the actual scenario
| and
| > how you would account for the lack of the actual calendar for the dates
| you
| > want to represent?
| >
| >
| > --
| > MichKa [MS]
| >
| > This posting is provided "AS IS" with
| > no warranties, and confers no rights.
| >
| >
| > "rick cameron" <ri**********@decisionscrystal.com> wrote in message
| > news:%2****************@TK2MSFTNGP12.phx.gbl...
| > > TimeZone - the only instance you can get is one representing the local
| > time
| > > zone
| > > DateTime - cannot represent a time before 00:00:00 1 Jan 1 CE
| > >
| > > What were they thinking? This is a serious question - can anyone come
up
| > > with a good reason for these incredible design restrictions?
| > >
| > > Michael Brumm http://michaelbrumm.com has produced a fix for the first
| > > problem with his SimpleTimeZone class - good on you, Michael!
| > >
| > > Any thoughts on how to deal with the second problem?
| > >
| > > Cheers
| > >
| > > - rick cameron
| > >
| > >
| > >
| >
| >
|
|
|

Jul 21 '05 #5
Hi, Kevin

Thanks for your reply.

Although I don't often need to work with dates BCE myself, occasionally our
customers have requested this.

Another problem that arises from this limit on DateTime is that the
java.util.Date class in J# does not conform to the Java specification, in
that it does not support the range of dates specified.

Cheers

- rick

"Kevin Yu [MSFT]" <v-****@online.microsoft.com> wrote in message
news:AJ*************@cpmsftngxa06.phx.gbl...
Hi Rick,

Generally, we use the B.C. calenders seldomly. So the DateTime structure is designed for convenience. If you need to represent the A.D. dates you can
try the System.Globalization.GregorianCalendar class.

Please refer to the following link for more information:

http://msdn.microsoft.com/library/de...us/cpref/html/ frlrfsystemglobalizationgregoriancalendarclasstopi c.asp

Kevin Yu
=======
"This posting is provided "AS IS" with no warranties, and confers no
rights."

--------------------
| From: "rick cameron" <ri**********@decisionscrystal.com>
| References: <#1**************@TK2MSFTNGP12.phx.gbl>
<ed**************@tk2msftngp13.phx.gbl>
| Subject: Re: TimeZone and DateTime - what were they thinking?
| Date: Mon, 13 Oct 2003 21:04:50 -0700
| Lines: 85
| X-Priority: 3
| X-MSMail-Priority: Normal
| X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
| X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
| Message-ID: <#6**************@TK2MSFTNGP09.phx.gbl>
| Newsgroups:
microsoft.public.dotnet.framework,microsoft.public .dotnet.framework.clr,micr osoft.public.dotnet.general
| NNTP-Posting-Host: d142-173-9-56.bchsia.telus.net 142.173.9.56
| Path: cpmsftngxa06.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFTN GP09.phx.gbl
| Xref: cpmsftngxa06.phx.gbl microsoft.public.dotnet.framework.clr:8293
microsoft.public.dotnet.general:111703
microsoft.public.dotnet.framework:56069
| X-Tomcat-NG: microsoft.public.dotnet.general
|
| Hi again, Michael
|
| #1 - It's too bad that this is one of the places where the .NET Framework | designers decided to limit themselves to what is supported by the O/S,
| rather than providing an extended implementation that fill out the model
to
| its logical conclusion. A scenario where this would be really useful is
when
| software is running on a server and must format a time according to the
| conventions appropriate for a remote client - including time zone.
|
| #2 - The DateTime class already supports dates that go back before the
| earliest date that can be represented in any of the Win32 and Ole formats. | It goes back to well before the introduction of the Gregorian calendar
| (which happened around 1750). But it stops, rather arbitrarily, at 1 Jan 1 | CE. If you're going back that far, why not support dates BCE up to the
limit
| of the implementation?
|
| This limitation makes it impossible to work with dates before year 3761 in | the Hebrew calendar. (Actually, the .NET implementation of the Hebrew
| calendar is even more limited - it only works with dates between years
5343
| and 6000).
|
| The implementation of DateTime and of date formatting code obviously
extends
| what's available in Win32 or Ole - so why impose these arbitrary limits?
|
| Cheers
|
| - rick
|
| "Michael (michka) Kaplan [MS]" <mi*****@online.microsoft.com> wrote in
| message news:ed**************@tk2msftngp13.phx.gbl...
| > Hi Rick! Long time no see....
| >
| > For #1, you already know the answer -- it is based on the OS support,
| which
| > has this limitation. I do like Michael's SimpleTimeZone, but there are
| still
| > issues that are kind of inherent in some of the fundamental
instabilities
| of
| > time zones as a whole. The most important note is that Michael himself
| > recommends always using UTC and then converting to local time for
display
| > ONLY -- which is what MS had advocated since the beginning, what they
use
| in
| > AD and email, and what actually causes the SimpleTimeZone to be able (in | > most cases) from a requirement to an optional cool feature.
| >
| > For #2, its hard to understand the meaning of Gregorian calendar dates
| > before the calendar existed. Maybe you could explain the actual scenario | and
| > how you would account for the lack of the actual calendar for the dates | you
| > want to represent?
| >
| >
| > --
| > MichKa [MS]
| >
| > This posting is provided "AS IS" with
| > no warranties, and confers no rights.
| >
| >
| > "rick cameron" <ri**********@decisionscrystal.com> wrote in message
| > news:%2****************@TK2MSFTNGP12.phx.gbl...
| > > TimeZone - the only instance you can get is one representing the local | > time
| > > zone
| > > DateTime - cannot represent a time before 00:00:00 1 Jan 1 CE
| > >
| > > What were they thinking? This is a serious question - can anyone come up
| > > with a good reason for these incredible design restrictions?
| > >
| > > Michael Brumm http://michaelbrumm.com has produced a fix for the first | > > problem with his SimpleTimeZone class - good on you, Michael!
| > >
| > > Any thoughts on how to deal with the second problem?
| > >
| > > Cheers
| > >
| > > - rick cameron
| > >
| > >
| > >
| >
| >
|
|
|

Jul 21 '05 #6
Hi Rick,

I'm not quite familiar with java. According to the Java Language
Specification from MSDN
(http://msdn.microsoft.com/library/de...-us/vjref98/ht
ml/21_3.asp), we can see that the java.util.Date class might have the same
range as System.DateTime. So it might not support the B.C. dates.

Kevin Yu
=======
"This posting is provided "AS IS" with no warranties, and confers no
rights."

--------------------
| From: "rick cameron" <ri**********@decisionscrystal.com>
| References: <#1**************@TK2MSFTNGP12.phx.gbl>
<ed**************@tk2msftngp13.phx.gbl>
<#6**************@TK2MSFTNGP09.phx.gbl>
<AJ*************@cpmsftngxa06.phx.gbl>
| Subject: Re: TimeZone and DateTime - what were they thinking?
| Date: Tue, 14 Oct 2003 09:22:46 -0700
| Lines: 166
| X-Priority: 3
| X-MSMail-Priority: Normal
| X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
| X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
| Message-ID: <OF**************@tk2msftngp13.phx.gbl>
| Newsgroups: microsoft.public.dotnet.general
| NNTP-Posting-Host: user.seagatesoftware.com 204.50.113.28
| Path: cpmsftngxa06.phx.gbl!TK2MSFTNGP08.phx.gbl!tk2msftn gp13.phx.gbl
| Xref: cpmsftngxa06.phx.gbl microsoft.public.dotnet.general:111791
| X-Tomcat-NG: microsoft.public.dotnet.general
|
| Hi, Kevin
|
| Thanks for your reply.
|
| Although I don't often need to work with dates BCE myself, occasionally
our
| customers have requested this.
|
| Another problem that arises from this limit on DateTime is that the
| java.util.Date class in J# does not conform to the Java specification, in
| that it does not support the range of dates specified.
|
| Cheers
|
| - rick
|
| "Kevin Yu [MSFT]" <v-****@online.microsoft.com> wrote in message
| news:AJ*************@cpmsftngxa06.phx.gbl...
| > Hi Rick,
| >
| > Generally, we use the B.C. calenders seldomly. So the DateTime structure
| is
| > designed for convenience. If you need to represent the A.D. dates you
can
| > try the System.Globalization.GregorianCalendar class.
| >
| > Please refer to the following link for more information:
| >
| >
|
http://msdn.microsoft.com/library/de...us/cpref/html/
| > frlrfsystemglobalizationgregoriancalendarclasstopi c.asp
| >
| > Kevin Yu
| > =======
| > "This posting is provided "AS IS" with no warranties, and confers no
| > rights."
| >
| > --------------------
| > | From: "rick cameron" <ri**********@decisionscrystal.com>
| > | References: <#1**************@TK2MSFTNGP12.phx.gbl>
| > <ed**************@tk2msftngp13.phx.gbl>
| > | Subject: Re: TimeZone and DateTime - what were they thinking?
| > | Date: Mon, 13 Oct 2003 21:04:50 -0700
| > | Lines: 85
| > | X-Priority: 3
| > | X-MSMail-Priority: Normal
| > | X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
| > | X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
| > | Message-ID: <#6**************@TK2MSFTNGP09.phx.gbl>
| > | Newsgroups:
| >
|
microsoft.public.dotnet.framework,microsoft.public .dotnet.framework.clr,micr
| > osoft.public.dotnet.general
| > | NNTP-Posting-Host: d142-173-9-56.bchsia.telus.net 142.173.9.56
| > | Path: cpmsftngxa06.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFTN GP09.phx.gbl
| > | Xref: cpmsftngxa06.phx.gbl microsoft.public.dotnet.framework.clr:8293
| > microsoft.public.dotnet.general:111703
| > microsoft.public.dotnet.framework:56069
| > | X-Tomcat-NG: microsoft.public.dotnet.general
| > |
| > | Hi again, Michael
| > |
| > | #1 - It's too bad that this is one of the places where the .NET
| Framework
| > | designers decided to limit themselves to what is supported by the O/S,
| > | rather than providing an extended implementation that fill out the
model
| > to
| > | its logical conclusion. A scenario where this would be really useful
is
| > when
| > | software is running on a server and must format a time according to
the
| > | conventions appropriate for a remote client - including time zone.
| > |
| > | #2 - The DateTime class already supports dates that go back before the
| > | earliest date that can be represented in any of the Win32 and Ole
| formats.
| > | It goes back to well before the introduction of the Gregorian calendar
| > | (which happened around 1750). But it stops, rather arbitrarily, at 1
Jan
| 1
| > | CE. If you're going back that far, why not support dates BCE up to the
| > limit
| > | of the implementation?
| > |
| > | This limitation makes it impossible to work with dates before year
3761
| in
| > | the Hebrew calendar. (Actually, the .NET implementation of the Hebrew
| > | calendar is even more limited - it only works with dates between years
| > 5343
| > | and 6000).
| > |
| > | The implementation of DateTime and of date formatting code obviously
| > extends
| > | what's available in Win32 or Ole - so why impose these arbitrary
limits?
| > |
| > | Cheers
| > |
| > | - rick
| > |
| > | "Michael (michka) Kaplan [MS]" <mi*****@online.microsoft.com> wrote in
| > | message news:ed**************@tk2msftngp13.phx.gbl...
| > | > Hi Rick! Long time no see....
| > | >
| > | > For #1, you already know the answer -- it is based on the OS
support,
| > | which
| > | > has this limitation. I do like Michael's SimpleTimeZone, but there
are
| > | still
| > | > issues that are kind of inherent in some of the fundamental
| > instabilities
| > | of
| > | > time zones as a whole. The most important note is that Michael
himself
| > | > recommends always using UTC and then converting to local time for
| > display
| > | > ONLY -- which is what MS had advocated since the beginning, what
they
| > use
| > | in
| > | > AD and email, and what actually causes the SimpleTimeZone to be able
| (in
| > | > most cases) from a requirement to an optional cool feature.
| > | >
| > | > For #2, its hard to understand the meaning of Gregorian calendar
dates
| > | > before the calendar existed. Maybe you could explain the actual
| scenario
| > | and
| > | > how you would account for the lack of the actual calendar for the
| dates
| > | you
| > | > want to represent?
| > | >
| > | >
| > | > --
| > | > MichKa [MS]
| > | >
| > | > This posting is provided "AS IS" with
| > | > no warranties, and confers no rights.
| > | >
| > | >
| > | > "rick cameron" <ri**********@decisionscrystal.com> wrote in message
| > | > news:%2****************@TK2MSFTNGP12.phx.gbl...
| > | > > TimeZone - the only instance you can get is one representing the
| local
| > | > time
| > | > > zone
| > | > > DateTime - cannot represent a time before 00:00:00 1 Jan 1 CE
| > | > >
| > | > > What were they thinking? This is a serious question - can anyone
| come
| > up
| > | > > with a good reason for these incredible design restrictions?
| > | > >
| > | > > Michael Brumm http://michaelbrumm.com has produced a fix for the
| first
| > | > > problem with his SimpleTimeZone class - good on you, Michael!
| > | > >
| > | > > Any thoughts on how to deal with the second problem?
| > | > >
| > | > > Cheers
| > | > >
| > | > > - rick cameron
| > | > >
| > | > >
| > | > >
| > | >
| > | >
| > |
| > |
| > |
| >
|
|
|

Jul 21 '05 #7
Hi, Kevin

I haven't been able to find a place in the Java specification on Sun's
website where the valid range for Date is mentioned. Nonetheless, the
implementation of the class in the JDK supports BCE dates.

In any case, lack of compatibility with Java is not the main point I'm
trying to make. That point is just this: the TimeZone and DateTime classes
both have arbitrary limits. In the case of TimeZone, this is a real problem
for people trying to write software to run on a server. The documentation
gives no justification for these limits.

I'm sure you don't know the reason for the limits, either. It's buried in
the head of the programmer who designed these classes.

If you can pass on the suggestion that these classes be enhanced in the next
version of the .NET libraries - in particular, that TimeZone support all of
the current time zones, not just the local one, and that DateTime have the
arbitrary limits on its range (1 CE to 9999 CE) removed) I would be very
grateful.

Thanks

- rick

"Kevin Yu [MSFT]" <v-****@online.microsoft.com> wrote in message
news:Xb**************@cpmsftngxa06.phx.gbl...
Hi Rick,

I'm not quite familiar with java. According to the Java Language
Specification from MSDN
(http://msdn.microsoft.com/library/de...-us/vjref98/ht ml/21_3.asp), we can see that the java.util.Date class might have the same
range as System.DateTime. So it might not support the B.C. dates.

Kevin Yu
=======
"This posting is provided "AS IS" with no warranties, and confers no
rights."

Jul 21 '05 #8
Hi Rick,

I will pass your suggestion through an appropriate channel. Thank you very
much for your advice!

Kevin Yu
=======
"This posting is provided "AS IS" with no warranties, and confers no
rights."

--------------------
| From: "rick cameron" <ri**********@decisionscrystal.com>
| References: <#1**************@TK2MSFTNGP12.phx.gbl>
<ed**************@tk2msftngp13.phx.gbl>
<#6**************@TK2MSFTNGP09.phx.gbl>
<AJ*************@cpmsftngxa06.phx.gbl>
<OF**************@tk2msftngp13.phx.gbl>
<Xb**************@cpmsftngxa06.phx.gbl>
| Subject: Re: TimeZone and DateTime - what were they thinking?
| Date: Wed, 15 Oct 2003 09:29:28 -0700
| Lines: 43
| X-Priority: 3
| X-MSMail-Priority: Normal
| X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
| X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
| Message-ID: <#T**************@TK2MSFTNGP11.phx.gbl>
| Newsgroups: microsoft.public.dotnet.general
| NNTP-Posting-Host: user.seagatesoftware.com 204.50.113.28
| Path: cpmsftngxa06.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFTN GP11.phx.gbl
| Xref: cpmsftngxa06.phx.gbl microsoft.public.dotnet.general:112003
| X-Tomcat-NG: microsoft.public.dotnet.general
|
| Hi, Kevin
|
| I haven't been able to find a place in the Java specification on Sun's
| website where the valid range for Date is mentioned. Nonetheless, the
| implementation of the class in the JDK supports BCE dates.
|
| In any case, lack of compatibility with Java is not the main point I'm
| trying to make. That point is just this: the TimeZone and DateTime classes
| both have arbitrary limits. In the case of TimeZone, this is a real
problem
| for people trying to write software to run on a server. The documentation
| gives no justification for these limits.
|
| I'm sure you don't know the reason for the limits, either. It's buried in
| the head of the programmer who designed these classes.
|
| If you can pass on the suggestion that these classes be enhanced in the
next
| version of the .NET libraries - in particular, that TimeZone support all
of
| the current time zones, not just the local one, and that DateTime have the
| arbitrary limits on its range (1 CE to 9999 CE) removed) I would be very
| grateful.
|
| Thanks
|
| - rick
|
| "Kevin Yu [MSFT]" <v-****@online.microsoft.com> wrote in message
| news:Xb**************@cpmsftngxa06.phx.gbl...
| > Hi Rick,
| >
| > I'm not quite familiar with java. According to the Java Language
| > Specification from MSDN
| >
|
(http://msdn.microsoft.com/library/de...-us/vjref98/ht
| > ml/21_3.asp), we can see that the java.util.Date class might have the
same
| > range as System.DateTime. So it might not support the B.C. dates.
| >
| > Kevin Yu
| > =======
| > "This posting is provided "AS IS" with no warranties, and confers no
| > rights."
| >
|
|
|

Jul 21 '05 #9
"rick cameron" <ri**********@decisionscrystal.com> wrote...
#1 - It's too bad that this is one of the places where the .NET Framework
designers decided to limit themselves to what is supported by the O/S,
rather than providing an extended implementation that fill out the model to its logical conclusion. A scenario where this would be really useful is when software is running on a server and must format a time according to the
conventions appropriate for a remote client - including time zone.
Well, I understand what you are saying here, and I was not on on the team
that did this but I think it probably was not based so much on being "as
limited as the OS" for no reason, so much as that is what the implementation
was doing. Note that they do extend it some, and it ends up causing
confusion when the OS and the Framework give two different answers....
#2 - The DateTime class already supports dates that go back before the
earliest date that can be represented in any of the Win32 and Ole formats.
It goes back to well before the introduction of the Gregorian calendar
(which happened around 1750). But it stops, rather arbitrarily, at 1 Jan 1
CE. If you're going back that far, why not support dates BCE up to the limit of the implementation?
Well, again I am not on that team so I cannot really explain why. I doubt
the reasons are arbitrary, though.... FWIW.
This limitation makes it impossible to work with dates before year 3761 in
the Hebrew calendar. (Actually, the .NET implementation of the Hebrew
calendar is even more limited - it only works with dates between years 5343 and 6000).
Ok, now this is a more reasonable scenario and seems like a much more
glaring limitation. I will ask after this one....
The implementation of DateTime and of date formatting code obviously extends what's available in Win32 or Ole - so why impose these arbitrary limits?


As I said I don't think they are arbitrary limits, but when I have not even
seen the code I cannot guess as to the reasoning and/or logic. If I would
have to guess I would hazard a speculation that perhaps the code was a port
of the oleaut code and the limitation is based on the way that the algorithm
was moved over. But I do not know for sure....
--
MichKa [MS]
NLS Collation/Locale/Keyboard Development
Globalization Infrastructure and Font Technologies

This posting is provided "AS IS" with
no warranties, and confers no rights.

Jul 21 '05 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

7
by: Jim Davis | last post by:
I'm (still) working on an ISO 8601 date parser. I want to convert at least the formats described here: http://www.w3.org/TR/NOTE-datetime Well.. I've got most of it working (via RegEx's) good...
6
by: Bijoy Naick | last post by:
I have an events table which stores the time of each event - the time and assoicated timezone. Is there a way of converting this time into GMT (with support for DST).. some sort of function which...
8
by: rick cameron | last post by:
TimeZone - the only instance you can get is one representing the local time zone DateTime - cannot represent a time before 00:00:00 1 Jan 1 CE What were they thinking? This is a serious question...
3
by: asanford | last post by:
I want to create a web service that allows the caller to pass a DateTime to the web service (that is, create a web method such as void MyWebMethod(DateTime dt).) However, I want to be able to...
4
by: Michael Meckelein | last post by:
Hello, Wondering, if C# (framework 2.0) does not support parsing DateTime timezones in three letter acronyms. I would like to parse date strings like "2005 Nov 01 11:58:47.490 CST -6:00" but...
0
by: jrhastings | last post by:
I know there are many threads on this topic but I haven't yet found an answer to this question. I'd like to map from a utc to a local time in an arbitrary timezone (not necessary the default local...
2
by: Sanjay | last post by:
Hi All, Using pytz, I am facing a problem with Asia/Calcutta, described below. Asia/Calcutta is actually IST, which is GMT + 5:30. But while using pytz, it was recognized as HMT (GMT + 5:53)....
2
by: Michele Locati | last post by:
Hi to everybody I'm working with dates and time, and I can't find the way to determine the time in a generic TimeZone. Here's an example of what I'd like to do: // I get the local date and...
6
by: jehugaleahsa | last post by:
Hello: I would like it so that the time displayed was always for CDT/CDS. Potentially, the application can be run at locations in Mountain Time or Central Time. This is what I have now: //...
1
by: CloudSolutions | last post by:
Introduction: For many beginners and individual users, requiring a credit card and email registration may pose a barrier when starting to use cloud servers. However, some cloud server providers now...
0
by: Faith0G | last post by:
I am starting a new it consulting business and it's been a while since I setup a new website. Is wordpress still the best web based software for hosting a 5 page website? The webpages will be...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.