Haftalık C++ 33 – Zaman Bilgisi/Etiketi

Evet dostlar çok kısa fakat bir o kadar da sizlere yardımcı olacağını düşündüğüm bir yazı ile karşınızdayım.
Zaman Damgası (“Timestamp”) deyince aklınıza ne geliyor? Başlığı, zaman bilgisi koydum, açıkçası daha kibar geliyor ne diyebilirim 🙂
Hemen wikipedia’ya bakalım bakalım ne söyler?

“Zaman damgası, belirli bir olayın ne zaman gerçekleştiğini tanımlayan, genellikle günün tarih ve saatini veren, bazen saniyenin küçük bir kısmına kadar doğru olan bir dizi karakter veya kodlanmış bilgidir.”

Bingo! Zaman bilgisini, kayıt (“log”), mesaj veya herhangi bir olay için, ne zaman olduğunu kayıt altına almak, sonrasında sorgulamak, sıralamak ve ilaveten filtrelemek için kullanılabilecek önemli bir bilgi.

Burada çok detaylarına girmeyeceğim fakat, zaman bilgisi denilince karşınıza “Unix time” ya da “Epoch time” (https://www.wikiwand.com/en/Unix_time) kavramları çıkabilir. Bu zaman kısaca, Epoch’tan bu yana geçen saniyeleri ifade eder. Peki “Epoch” hangi zamana karşılık gelir, o da “00:00:00 UTC 1 Ocak 1970” olarak kabul edilmektedir.

Her ne kadar “timestamp” denildiği zaman “Unix Timestamp” akla gelse de farklı amaçlar için de tanımlamalar görülebilir.

Şimdi gelelim asıl meramımıza, bir uygulama geliştirdiniz ve modern bir şekilde, bir diğer ifade ile Modern C++ kullanarak zaman bilgisini bastırmak iştiyorsunuz ne yapacaksınız? İşte yazılımperver dostlarım artık buna dair ne kullanacağınıza bakma vakti geldi 😉

Aşağıdaki örnek kodta temel olarak dört fonksiyon mevcut kodları paylaşmadan önce ne yaptıklarını kısaca sizlere aktarayım:

  • uint64_t getTimestampInMsec();
    • Basit bir şekilde Epoch anından bu yana geçen zamanı milisaniye cinsinden almak için
  • std::string getTimeString();
    • Mevcut zamanı (Tue Sep 27 14:21:13 2011) formatında döner
  • std::string getDetailedTimeString();
    • Bu fonksiyon, mevcut zaman bilgisini biraz daha sayısal ve kayıtlar icin uygun bir formatta sunuyor bizlere. Format şu şekilde “2020-11-09 20:19:45.217
  • std::string getDetailedTimeString(uint64_t msec);
    • Bu fonksiyon bir önceki metodun aynısını verilen zaman için yapıyor. Özellikle çeşitli kanallar aracılığı ile edindiğiniz zaman bilgisini görselleştirmek için faydalı olabilir.

Aşağıda yukarıdaki fonksiyonlara ilişkin kodları görebilirsiniz. Bu arada, daha önceki yazılarımdan farklı olarak bu yazımda gisti de ilk defa kullanıyorum bakalım  beğenecek misiniz?

Bu vesile ile chrono kütüphanesine de bir bakış atmış olduk. İnşallah ileride, bir (hatta belki de iki) yazımı bu kabiliyete ayıracağım. O zamana kadar bol kodlu günler diliyorum sizlere 🙂

 

2 Comments Haftalık C++ 33 – Zaman Bilgisi/Etiketi

  1. ali

    sitenizi beğendim. sizin gibi içerik üretici bloglar çok nadir görülür oldu. başarılar dilerim hoca. makalelerin yanında youtube a da girmeni tavsiye ederim.

    Reply

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.