Skip to content

Instantly share code, notes, and snippets.

@Maarten88
Last active December 17, 2015 07:19
Show Gist options
  • Save Maarten88/5571926 to your computer and use it in GitHub Desktop.
Save Maarten88/5571926 to your computer and use it in GitHub Desktop.
Globalization in ASP.NET cloud applications
using System;
namespace Auction.Web.Utility
{
public static class DateTimeExtensions
{
public static DateTime ToLocalAuctionTime(this DateTime dt)
{
// dt.DateTimeKind should be Utc!
var tzi = TimeZoneInfo.FindSystemTimeZoneById(AppSettings.TimeZoneId);
return TimeZoneInfo.ConvertTimeFromUtc(DateTime.SpecifyKind(dt, DateTimeKind.Utc), tzi);
}
public static DateTime ToUtcTime(this DateTime dt)
{
var tzi = TimeZoneInfo.FindSystemTimeZoneById(AppSettings.TimeZoneId);
return TimeZoneInfo.ConvertTimeToUtc(dt, tzi);
}
public static DateTime RoundDown(this DateTime dateTime, int minutes)
{
return new DateTime(dateTime.Year, dateTime.Month,
dateTime.Day, dateTime.Hour, (dateTime.Minute / minutes) * minutes, 0);
}
}
}
public class GetActiveAuction : Query<Auction>
{
public override Auction Execute(DbAccess context)
{
return context.Query<Auction>("SELECT * FROM Auction WHERE State = @State AND [Start] <= @Now AND [End] >= @Now", new { State = AuctionState.Running, Now = DateTime.UtcNow }).FirstOrDefault();
}
}
<appSettings>
<add key="TimeZoneId" value="W. Europe Standard Time" />
</appSettings>
<system.web>
<globalization culture="nl-NL" uiCulture="nl-NL" enableClientBasedCulture="false" requestEncoding="utf-8" responseEncoding="utf-8" />
</system.web>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment