You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.2 KiB
63 lines
1.2 KiB
using System;
|
|
using System.Globalization;
|
|
|
|
namespace SharpCifs.Util.Sharpen
|
|
{
|
|
public class SimpleDateFormat : DateFormat
|
|
{
|
|
string _format;
|
|
|
|
CultureInfo Culture {
|
|
get; set;
|
|
}
|
|
|
|
bool Lenient {
|
|
get; set;
|
|
}
|
|
|
|
public SimpleDateFormat (): this ("g")
|
|
{
|
|
}
|
|
|
|
public SimpleDateFormat (string format): this (format, CultureInfo.CurrentCulture)
|
|
{
|
|
}
|
|
|
|
public SimpleDateFormat (string format, CultureInfo c)
|
|
{
|
|
Culture = c;
|
|
this._format = format.Replace ("EEE", "ddd");
|
|
this._format = this._format.Replace ("Z", "zzz");
|
|
SetTimeZone (TimeZoneInfo.Local);
|
|
}
|
|
|
|
public bool IsLenient ()
|
|
{
|
|
return Lenient;
|
|
}
|
|
|
|
public void SetLenient (bool lenient)
|
|
{
|
|
Lenient = lenient;
|
|
}
|
|
|
|
public override DateTime Parse (string value)
|
|
{
|
|
if (IsLenient ())
|
|
return DateTime.Parse (value);
|
|
return DateTime.ParseExact (value, _format, Culture);
|
|
}
|
|
|
|
public override string Format (DateTime date)
|
|
{
|
|
date += GetTimeZone().BaseUtcOffset;
|
|
return date.ToString (_format);
|
|
}
|
|
|
|
public string Format (long date)
|
|
{
|
|
return Extensions.MillisToDateTimeOffset (date, (int)GetTimeZone ().BaseUtcOffset.TotalMinutes).DateTime.ToString (_format);
|
|
}
|
|
}
|
|
}
|