Azure App Service Türkiye Saat Dilimi Ayarı Nasıl Yapılır?
Azure App Service'te Türkiye saat dilimini Windows ve Linux için ayarlayın; .NET uygulamalarında UTC ve tarih formatını doğru yönetin.
Azure App Service üzerinde yayınladığınız ASP.NET MVC veya ASP.NET Core uygulamalarında saat bilgisinin Türkiye saatinden üç saat geride olduğunu fark etmiş olabilirsiniz.
Bunun nedeni, Azure App Service'in varsayılan olarak UTC saat dilimini kullanmasıdır. Türkiye ise yıl boyunca UTC+3 saat dilimindedir.
Neyse ki bu sorunu basit bir ortam değişkeniyle çözmek mümkün.
1. Azure App Service Türkiye Saat Dilimi Ayarı
Windows tabanlı Azure App Service uygulamalarında WEBSITE_TIME_ZONE ortam değişkenini tanımlayabilirsiniz.
Azure Portal üzerinden:
İlgili App Service kaynağını açın.
Settings → Environment variables bölümüne gidin.
App settings altında yeni bir değişken oluşturun.
Aşağıdaki değerleri girip kaydedin.
Key : WEBSITE_TIME_ZONE
Value : Turkey Standard TimeDeğişiklik sonrası uygulamanın yeniden başladığını kontrol edin.
Bu ayar sayesinde Windows App Service ortamında DateTime.Now Türkiye saatine göre çalışabilir.
2. Linux App Service Kullanıyorsanız
Linux ortamlarında Windows saat dilimi kimlikleri yerine IANA standartları kullanılır.
Platform | WEBSITE_TIME_ZONE |
|---|---|
Windows |
|
Linux |
|
Linux uygulamalarında Turkey Standard Time yerine Europe/Istanbul değerini kullanmalısınız.
Not: Azure Functions'ın Linux Consumption ve Flex Consumption planlarında bu ayar desteklenmez. Kullandığınız Azure hizmetinin ve barındırma planının özelliklerini kontrol edin.
3. .NET ile Türkiye Saatini Hesaplama
Sunucu ayarını değiştirmeden de .NET üzerinden Türkiye saatini hesaplayabilirsiniz.
var timeZoneId = OperatingSystem.IsWindows()
? "Turkey Standard Time"
: "Europe/Istanbul";
var turkeyZone = TimeZoneInfo
.FindSystemTimeZoneById(timeZoneId);
var turkeyTime = TimeZoneInfo.ConvertTime(
DateTimeOffset.UtcNow,
turkeyZone);
var formatted = turkeyTime.ToString(
"dd.MM.yyyy HH:mm",
new CultureInfo("tr-TR"));Bu örnek .NET 6 ve üzeri için uygundur. System.Globalization namespace'inin eklenmesi gerekir.
Burada iki farklı işlemi gerçekleştiriyoruz:
TimeZoneInfo: UTC saatini Türkiye saatine dönüştürür.
CultureInfo: Tarihi Türkçe biçimde gösterir.
Saat dilimi ile tarih formatı birbirinden bağımsızdır.
4. Kurumsal Uygulamalarda Doğru Yaklaşım
Özellikle SaaS uygulamalarında sunucunun saat dilimini değiştirmek yerine UTC tabanlı tarih yönetimini tercih ediyorum.
Tarihleri veritabanında UTC olarak saklayın.
API'lerde saat dilimi bilgisini koruyun.
Kullanıcıya gösterirken yerel saate dönüştürün.
Zamanlanmış işlemlerde saat dilimini açıkça tanımlayın.
Bu yaklaşım farklı ülkelerde çalışan kullanıcılar, mobil uygulamalar ve dağıtık sistemler açısından daha güvenilir bir mimari sağlar.
SaaS uygulamalarında karşılaşılan benzer mimari kararları Bir SaaS Ürününü Fikirden Gerçek Kullanıma Taşımak yazımda da ele alıyorum.
Sonuç
Azure App Service'te Türkiye saatini kullanmak için Windows ortamında Turkey Standard Time, Linux ortamında ise Europe/Istanbul ayarını kullanabilirsiniz.
Ancak uzun vadede en doğru yaklaşım, verileri UTC olarak saklamak ve gerekli saat dilimi dönüşümlerini uygulama katmanında gerçekleştirmektir.