sdk/Util/DateUtils.cs (38 lines of code) (raw):

/* * Copyright (C) Alibaba Cloud Computing * All rights reserved. * */ using System; using System.Globalization; namespace Aliyun.OSS.Util { internal static class DateUtils { private const string Rfc822DateFormat = "ddd, dd MMM yyyy HH:mm:ss \\G\\M\\T"; private const string Iso8601DateFormat = "yyyy-MM-dd'T'HH:mm:ss.fff'Z'"; /// <summary> /// Format an instance of <see cref="DateTime" /> to a GMT format string. /// </summary> public static string FormatRfc822Date(DateTime dtime) { return dtime.ToUniversalTime().ToString(Rfc822DateFormat, CultureInfo.InvariantCulture); } /// <summary> /// Format a GMT format string to an instance of <see cref="DateTime" />. /// </summary> /// <returns></returns> public static DateTime ParseRfc822Date(String s) { return DateTime.SpecifyKind( DateTime.ParseExact(s, Rfc822DateFormat, CultureInfo.InvariantCulture), DateTimeKind.Utc); } /// <summary> /// Format an instance of <see cref="DateTime" /> to string in iso-8601 format. /// </summary> public static string FormatIso8601Date(DateTime dtime) { return dtime.ToUniversalTime().ToString(Iso8601DateFormat, CultureInfo.CurrentCulture); } /// <summary> /// Format a iso-8601 format string to an instance of <see cref="DateTime" />. /// </summary> /// <returns></returns> public static DateTime ParseIso8601Date(String s) { return DateTime.SpecifyKind( DateTime.ParseExact(s, Iso8601DateFormat, CultureInfo.InvariantCulture), DateTimeKind.Utc); } /// <summary> /// Format an instance of <see cref="DateTime" /> to string in unix time format. /// </summary> public static string FormatUnixTime(DateTime dtime) { const long ticksOf1970 = 621355968000000000; return ((dtime.ToUniversalTime().Ticks - ticksOf1970) / 10000000L).ToString(CultureInfo.InvariantCulture); } } }