none
Tarih Formatları hakkında RRS feed

  • Soru

  • Merhaba arkadaşlar 

    Aşağıda açıklaması ingilizce olan bir metin var bu metinden int türünde değer döndürmem lazım

    benden istenen "Current Expiry Date of the Order in epoch time format.";

    Tarih değerinden geriye "1279012036"  şeklinde int formatında değer döndürmem gerekiyor

    Tarih varsayılan günün tarihidir.

    bu konu hakkında ayrdımcı olabilir misiniz?

    17 Temmuz 2016 Pazar 11:38

Yanıtlar

  • Evet UTC. Sana 1 yil ekle demiyor.

    string sUtc = "2017-07-14T14:54:30Z";
    
    var dt = DateTime.Parse(sUtc).ToUniversalTime();
    var unixTime = (int)(dt - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc))
    		.TotalSeconds
    

    • Yanıt Olarak İşaretleyen Musa adsız 19 Temmuz 2016 Salı 10:55
    19 Temmuz 2016 Salı 09:09

Tüm Yanıtlar

  • DateTime Tarih = DateTime.Now;            
                int Tarih2;
                if (int.TryParse(Tarih.ToShortDateString().Replace(".", ""), out Tarih2))
                    MessageBox.Show( Tarih2.ToString() + "İşlem tamam");
                else
                    MessageBox.Show("Hatalı işlem");
    bu şekilde kullana bilirsin.
    18 Temmuz 2016 Pazartesi 07:16
  • // Eski versiyonlarda da gecerli
    var unixTime = (int)(DateTime.UtcNow - new DateTime(1970,1,1,0,0,0,DateTimeKind.Utc)).TotalSeconds;
    
    // 4.6 ve sonrasi
    var unixTime = DateTimeOffset.Now.ToUnixTimeSeconds();

    18 Temmuz 2016 Pazartesi 09:13
  • Hocam şimdi ben bu kodları Reseller Club Domain yenileme işlemlerinde kullanıyorum ancak bir türlü olumlu sonuç alamadım. bu kodlarla da denedim ama yine de hata alıyorum

    Kodları referans olarak aldığım yer : http://manage.resellerclub.com/kb/answer/746

    kodlarım şu şekilde

    var param = Request.GetFriendlyUrlSegments();
    int a = int.Parse(param[0]);
    var query = db.AlanAdis.SingleOrDefault(s => s.id.Equals(a));
    
    DateTime dt = new DateTime();
    
    dt = DateTime.Parse(query.DomainDate.Value.ToString("yyyy-MM-dd"));
    
    dt = dt.AddYears(1);
    
    var unixTime = (int)(dt-new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalSeconds;
    
    #region API REQUEST
    string Url = "https://test.httpapi.com/api/domains/renew.json?" +
        "auth-userid=" + dop.ResellerID +
        "&api-key=" + dop.ApiKey +
        "&order-id=" + query.OrderID +
        "&years=1" +
        "&exp-date=" + unixTime +
        "&invoice-option=NoInvoice";
    
    var request = (HttpWebRequest)WebRequest.Create(Url);
    request.Method = "POST";
    #endregion
    
    try
    {
        var response = (HttpWebResponse)request.GetResponse();
    
        var returnVal = new StreamReader(response.GetResponseStream()).ReadToEnd();
        ErrorTB.Text=returnVal;
    }
    catch (Exception ex)
    {
        ErrorTB.Text = ex.Message;
    }
    
    

    Bu kodlarla apı sorgulaması yapıyorum aşağıdaki hatayı alıyorum

    Uzak sunucu hata döndürdü: (500) İç Sunucu Hatası.


    19 Temmuz 2016 Salı 06:54
  • Hata gercekten tarih kismiyla mi ilgili onu bilemem, hata mesaji onu soylemiyor.

    Cevirime gelince, benim verdigim kodu yanlis uyarlamissin. O sekilde dogru bir unix timestamp alman sadece, sans eseri, ozel durumlarda mumkun. O degerin UTC olmasi gerekiyor:

    1) DomainDate UTC mi? 
    2) DomainDate anladigim kadariyla DateTime?. Dogru tahmin ettiysem, neden bir DateTime, ya da DateTime? degerini string'e cevirip, sonra DateTime'a parse ediyorsun ki? Bu arada cevirim sirasinda veri kaybi da yaratiyorsun.

    Eger DomainDate, UTC deger tutan DateTime? ise:

    if (query != null && query.DomainDate.HasValue)
    {
       var dt = ((DateTime)query.DomainDate).AddYears(1);
       var unixTime = (int)(dt - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc))
            .TotalSeconds;
    
    // ...
    
    }

    Bu arada, senin dokumentasyona bir goz attim da, sanki sen yanlis parametreler veriyorsun:

    "exp-date Integer Required Current Expiry Date of the Order in epoch time format"


    • Düzenleyen CetinBasoz 19 Temmuz 2016 Salı 07:53
    19 Temmuz 2016 Salı 07:31
  • Hocam ben domaini kaydederken tarih girmiyorum, domain adını ve süresini ve diğer bilgileri giriyorum domain kaydı gerçekleşiyor.

    Sanırım reseller Clupta domain tarih  gün,ay ve yıl şeklinde saat bilgisi yok Whois bilgilerinde öyle görünüyor

    Ben ayrıca veri tabanıma tarihi DateTime şeklinde giriyorum

    Ben kodları bu şekilde yaptım yine de aynı hata veriyor. 

     var param = Request.GetFriendlyUrlSegments();
                int a = int.Parse(param[0]);
                var query = db.AlanAdis.SingleOrDefault(s => s.id.Equals(a));
    
    
    
                if (query != null && query.BitisTarihi.HasValue)
                {
                    var dt = ((DateTime)query.BitisTarihi).AddYears(1);
                    var unixTime = (int)(dt - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc))
                         .TotalSeconds;
    
                    // ...
    
    
    
                    #region API TALEP
    
    
                    string Url = "https://test.httpapi.com/api/domains/renew.json?" +
                        "auth-userid=" + dop.ResellerID +
                        "&api-key=" + dop.ApiKey +
                        "&order-id=" + query.OrderID +
                        "&years=1" +
                        "&exp-date=" + unixTime +
                        "&invoice-option=NoInvoice";
    
                    var request = (HttpWebRequest)WebRequest.Create(Url);
                    request.Method = "POST";
    
                    #endregion
    
                    try
                    {
                        var response = (HttpWebResponse)request.GetResponse();
    
                        var returnVal = new StreamReader(response.GetResponseStream()).ReadToEnd();
                        ErrorTB.Text = returnVal;
    
                    }
                    catch (Exception ex)
                    {
                        ErrorTB.Text = ex.Message;
    
                    }
    
                }

    19 Temmuz 2016 Salı 08:19
  • Hocam Tarihi Date şeklinde almak için önce string değere sonrada Date olacak şeklinde gün ay ve yıl bilgisi  almak için string değere dönüştürüyordum

    Belkide sorun Datetime şeklinde işlem yaptığım içindir.

    Datetime değilde Date şeklinde işlem yaparsak nasıl olur

    19 Temmuz 2016 Salı 08:38
  • Hocam Whois bilgilerinde : Expiration Date: 2017-07-14T14:54:30Z

    olarak gözüküyor bu Tarih UTC mi

    19 Temmuz 2016 Salı 08:41
  • Evet UTC. Sana 1 yil ekle demiyor.

    string sUtc = "2017-07-14T14:54:30Z";
    
    var dt = DateTime.Parse(sUtc).ToUniversalTime();
    var unixTime = (int)(dt - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc))
    		.TotalSeconds
    

    • Yanıt Olarak İşaretleyen Musa adsız 19 Temmuz 2016 Salı 10:55
    19 Temmuz 2016 Salı 09:09
  • Hocam Çok Teşekür ederim emeğinize sağlık

    19 Temmuz 2016 Salı 10:55