Daylight savings information for converting UTC dates - vb.net

I am developing reports using Microsoft SQL Report Builder 2.0. One of my requirement is to display the timezone information by passing "Timezone Offset" (-08:00) as a parameter to the report. Based on the offset value, we convert a UTC date to its appropriate timezone value (using VB.NET) and display the same. However, this does not consider the daylight savings. Is there anyway to incorporate daylight savings related changes to our conversion?
FYI, the platform is .NET Framework 3.
Thanks,
Veera

Take a look at the following:
TimeZone.GetDaylightChanges
DaylightTime
TimeZoneInfo
There are all sorts of properties and methods that you may be able to take advantage of.

I got the answer, If I want to acce.ss the timezone in the code. I need to add the "system.core" & then if imezonecreate a timezoninfo object and I can create custom timezone. Also we can get all timezones available zones from the system.
http://msdn.microsoft.com/en-us/library/system.timezoneinfo_members(v=VS.100).aspx
http://msdn.microsoft.com/en-us/library/bb309898(v=VS.100).aspx

Related

How to Store timezone with timestamp in xapi?

I am currently exploring Learning locker which is a LRS and store XAPI statements .I see the timestamp in XAPI should follow ISO 8601 format .I see it can be represented as "2015-01-01T01:00Z" but how can I store the timezone information too like "2007-04-05T12:30−02:00".XAPI documentation suggests setting the timeozone but there is no clear way how we can do it .
Any clue on this will be helpful .
Generally the Z indicates a timezone, specifically the UTC timezone. It is preferred that all statement timestamps are stored using UTC and then if they need to be handled relative to a local timezone then that conversion happens at the point of need rather than via the stored data. If you must store it with the specific timezone then the format you showed with the -02:00 should work. NOTE: In the proposed (nearly accepted) version 2.x of the xAPI specification all timestamps will have to be recorded in UTC, see:
A Timestamp shall be formatted to UTC
(https://gitlab.com/IEEE-SA/xapi/9274.1.1/xapi-base-standard-documentation/-/blob/master/9274.1.1%20xAPI%20Base%20Standard%20for%20Content.md#527-additional-requirements-for-data-types)
So it would likely be better to go ahead and start following that pattern.
If the timezone is relevant for other purposes it would be better to track the timezone itself separately from the timestamp (likely as a result or context extension).

Is there a bug with the rally API when querying release dates?

I think there is a bug when querying a release's ReleaseDate field. Let's say I have a release with a ReleaseDate of 04/24/2017 EDT, when I get the response from the API request, and take a peek at the ReleaseDate field for that release, it comes off as 04/25/2017 (in date time format obviously), one day ahead of the actual date. I am building a calendar app for inside use using full calendar, and this bug is really annoying. Am I correct to say that this is a bug? Are there any workarounds that do not involve writing code to fix the date after querying it? thanks.
Pretty sure this is timezone related. Dates in WSAPI are always UTC. Assuming your workspace is configured for Eastern the dates returned probably are the next day:
A release with an end date of 04/24/2017 is probably being returned from WSAPI with a date like 2017-04-25T03:59:59.000Z, which when converted to EDT would be the end of the day on the 24th.
You'll also want to be specific when setting dates since the backend will again try to coerce the date into UTC if there is no time specified. The current behavior or the detail pages is to set it to noon on that day for that timezone. So something like this: 2017-04-24T12:00:00-05:00
Hope that helps. We did a bunch of work across the product and the api's last year to try to provide a more consistent experience working with timezones. It still can be confusing, but a good rule of thumb is to always be specific and include a time and timezone offset when working with dates using the api.
If you're using App SDK, the moment.js library is already included and is super handy for working with dates:
https://help.rallydev.com/apps/2.1/doc/#!/guide/third_party_libs-section-moment.js-2.10.3

Is there a way to get the user-preference Time Zone value from the Dwolla API?

The Dwolla transaction "Date" field apparently uses this value for generating a timestamp, but I don't see any way to get the "Time Zone" preference from the API?
Zooming out, I'm trying to get the definitive/comparable date for a transaction, but I need to know the timezone of the date string.
While this method doesn't state what the time zone is, others like this one make it clear that the dates are in UTC, so I would guess that all dates are in UTC throughout the API.
The only thing I don't like about their API is they are showing example dates like:
"Date": "8/31/2011 10:19:09 AM"
It's not very smart of them to use M/D/YYYY format, nor to use a 12-hour clock. This is better represented by "2011-08-31T10:19:09Z", which is in ISO format and indicates UTC. If you ever get a chance to speak with them, you should recommend they use this format (ISO-8601).
Just be aware of this when you are parsing it, since the format they are using may or may not be the correct format for your current culture.
Dwolla are making the change to the ISO timestamp on August 4th 2014
This change will be rolled out in 60 days from today, on 9:00 AM CT August 4th, 2014. If you need help making adjustments to your code to parse the new datetime format, let us know and we'll be glad to lend a hand.
https://discuss.dwolla.com/t/api-update-new-timestamp-format-for-clearingdate-parameter/401

Best practice Date and Time registration

I am building a simple CMS to manage articles.
My MS SQL Server 2008 is Hosted in USA, Author of Data Base are situated in USA and Germany.
When a Author create an article in the DataBase I would like record the DATE of creation.
I would like to show the date on the website as would all contents and articles are created from Germany.
My questions:
A) - shell I use SYSDATETIMEOFFSET() as DEFAULT in DataBase and in the Business Logic Layer converted to Germany time?
B) - shall I add DATE from the Business Logic Layer directly without letting the DataBase adding the datetime, and showing the data as it is?.
I hope my question is clear.
If you are able to send me some link-resource I would appreciate it
Thanks guys :-)
Store dates in UTC with the timezone offset, use this date inside the application as well.
Only convert to the local time display in the last moment.
Best practices for datetime, daylight saving and timezones are collected in this question.
My recommendation would be to go with UTC - this way you have an absolute frame of reference.
This is done in SQL Server using
select getutcdate()
Store dates in some standard time in your DB, regardless of time zone it originated from.
Store/calculate time zone of user, and whenever you display the data to the user, convert it to the user's timezone in the BL/Presentation Layer. Don't do it in the UI, you'll end up with pain later!

Report Builder 2.0 : How to get the correct timezone info

I am developing report using SQL Report Builder 2.0, In this I am passing the timezone offset value as a parameter (-04:00). Using "TimeZoneInfo" I am getting all the timezones available from the system. But I am checking the timezone with the offset value, so from the list available I can only get the first timezone object.
Is there any other ways to get a specific TimezoneInfo from the system.
Thanks,
Veera
This will return the Timezone offset.
System.TimeZone.CurrentTimeZone.GetUtcOffset(now())
This will return the Local time.
System.TimeZone.CurrentTimeZone.ToLocalTime(now())
This will display the time zone name
System.TimeZone.CurrentTimeZone.StandardName
When running the report on the server, it will show the Server's timezone. One quick way to deal with that is to just show the time & the timezone name.
If you really must show each user their local time, you should probably store the UTC offset against one of the geography tables in your database i.e. office or location. You could also store it against user names (User ID is a global variable available in SSRS) but that would be more maintenance.