67 lines
1.6 KiB
C#
67 lines
1.6 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|