Contains helper for converting to and from the date formats : Date Time Format « Date Time « C# / C Sharp






Contains helper for converting to and from the date formats

     
//http://facebooktoolkit.codeplex.com/
//http://facebooktoolkit.codeplex.com/license
using System;

namespace Facebook.Utility
{
    ///<summary>
    /// Contains helper for converting to and from the date formats provided by facebook
    ///</summary>
    public static class DateHelper
    {
        ///<summary>
        /// Returns a datetime corresponding to 1/1/1970
        ///</summary>
        public static DateTime BaseUTCDateTime
        {
            get { return new DateTime(1970, 1, 1, 0, 0, 0); }
        }

        ///<summary>
        /// Event dates are stored by assuming the time which the user input was in Pacific
        /// time (PST or PDT, depending on the date), converting that to UTC, and then
        /// converting that to Unix epoch time. This algorithm reverses that process.
        ///</summary>
        public static DateTime ConvertUnixTimeToDateTime(long secondsSinceEpoch)
        {
            DateTime utcDateTime = BaseUTCDateTime.AddSeconds(secondsSinceEpoch);
            int pacificZoneOffset = utcDateTime.IsDaylightSavingTime() ? -7 : -8;
            return utcDateTime.AddHours(pacificZoneOffset);
        }

        /// <summary>
        /// Convert datetime to UTC time, as understood by Facebook.
        /// </summary>
        /// <param name="dateToConvert">The date that we need to pass to the api.</param>
        /// <returns>The number of seconds since Jan 1, 1970.</returns>
        public static long ConvertDateToFacebookDate(DateTime dateToConvert)
        {
            return (long)((dateToConvert - BaseUTCDateTime).TotalSeconds);
        }

        /// <summary>
        /// Convert UTC time, as returned by Facebook, to localtime.
        /// </summary>
        /// <param name="secondsSinceEpoch">The number of seconds since Jan 1, 1970.</param>
        /// <returns>Local time.</returns>
        internal static DateTime ConvertDoubleToDate(double secondsSinceEpoch)
        {
#if !SILVERLIGHT
            return TimeZone.CurrentTimeZone.ToLocalTime(BaseUTCDateTime.AddSeconds(secondsSinceEpoch));
#else
            return TimeZoneInfo.ConvertTime(BaseUTCDateTime.AddSeconds(secondsSinceEpoch), TimeZoneInfo.Local);
#endif
        }

        //Event dates are stored by assuming the time which the user input was in Pacific
        // time (PST or PDT, depending on the date), converting that to UTC, and then
        // converting that to Unix epoch time. This algorithm reverses that process.
        internal static DateTime ConvertDoubleToEventDate(double secondsSinceEpoch)
        {
            DateTime utcDateTime = BaseUTCDateTime.AddSeconds(secondsSinceEpoch);
            int pacificZoneOffset = utcDateTime.IsDaylightSavingTime() ? -7 : -8;
            return utcDateTime.AddHours(pacificZoneOffset);
        }

        /// <summary>
        /// Convert datetime to UTC time, as understood by Facebook.
        /// </summary>
        /// <param name="dateToConvert">The date that we need to pass to the api.</param>
        /// <returns>The number of seconds since Jan 1, 1970.</returns>
        internal static double? ConvertDateToDouble(DateTime? dateToConvert)
        {
            return dateToConvert != null ? new double?((dateToConvert.Value - BaseUTCDateTime).TotalSeconds) : null;
        }
    }
}

   
    
    
    
    
  








Related examples in the same category

1.use the ToString() method to convert a DateTime to a string
2.use the ToLongTimeString() and ToShortTimeString() methods to convert the time parts of a DateTime to long and short time strings
3.use the FromFileTime() method to convert an operating system file timestamp to a DateTime
4.use the ToFileTime() method to convert a DateTime to an operating system file timestamp
5.Format time and date information 1Format time and date information 1
6.Format time and date information 2Format time and date information 2
7.demonstrates culture formattingdemonstrates culture formatting
8.DateTime ToString with CultureInfo
9.The next example formats a DateTime with invariant culture. Invariant culture is always the same, regardless of the computer's settings:
10.Request a specific culture (english language in Great Britain):
11.Compare the results of choosing InvariantInfo with those of choosing CurrentInfo:
12.Format date value as short date format
13.Long date format
14.Sortable date format
15.Universal sortable date format
16.Universal full date/time
17.RFC1123 date format
18.Month date format
19.Year date format
20.General date long time format
21.General date/short time format
22.Full date long time format
23.Full date short time format
24.Long time date format
25.Short time date format
26.DateTime Format: %M
27.DateTime format: MMMM dd, yyyy (dddd)
28.DateTime Format: MM-dd-yy
29.DateTime Format: d, M
30.DateTime Format: d MMMM
31.DateTime Format: dd,MM
32.DateTime Format: ddd d MMM
33.DateTime Format: ddd d MMM (fr-FR)
34.DateTime Format: dddd dd MMMM
35.DateTime Format: dddd dd MMMM (it-IT)
36.DateTime Format: : hh:mm:ss.f
37.DateTime Format: hh:mm:ss.F
38.DateTime Format: hh:mm:ss.ff
39.DateTime Format: hh:mm:ss.FF (2)
40.DateTime Format: "hh:mm:ss.fff
41.DateTime Format: hh:mm:ss.FFF
42.DateTime Format: MM/dd/yyyy g
43.DateTime Format: h:m:s.F t
44.DateTime Format: hh:mm:ss.ff tt
45.DateTime Format: H:mm:ss
46.DateTime Format: HH:mm:ss
47.DateTime Format: %K
48.DateTime Format: hh:mm:ss tt
49.DateTime Format: (M) MMM, MMMM
50.DateTime Format: dd, MM
51.DateTime Format: dddd dd MMMM (2)
52.DateTime Format: yyyyy
53.DateTime Format: %z
54.DateTime Format: zzz, zz
55.DateTime Format: %h
56.DateTime Format: h \\h m \\m
57.Format decimal with different cultures
58.Sql format string to Date
59.dateTime.ToString("dd/MM/yyyy ")
60.dateTime.ToString("dd/MM/yyyy hh:mm")
61.DateTime to short and long String
62.Gets the pretty date.
63.Converts a DateTime object into a unix timestamp number.
64.To Unix time
65.Format Time as ##:##:##
66.Format Time as ##/##/## (2)