2017-04-25 11 views
5
var item = new DateTimeOffset(DateTime.UtcNow).ToUnixTimeSeconds(); 

Kod powoduje błąd kompilacji „nie zawiera definicji ToUnixTimeSeconds ...”. Działa to dobrze w VS 2015, mam również przestrzeń nazw using System; oraz odniesienia do mscorlib i System (wersja 4.0.0.0). Istnieje wielu innych członków DateTimeOffset.ToUnixTimeSeconds brakuje po migracji do VS 2017

+0

spróbuj uruchomić 'dotnet restore' ręcznie na swoim projekcie i otwórz VS. –

Odpowiedz

5

Niedawno miałem ten sam problem w nowym projekcie. To, co robię po przeprowadzeniu wyszukiwania i testowania google, znajdzie taką funkcję:

public static long ToUnixEpochDate(DateTime date) => new DateTimeOffset(date).ToUniversalTime().ToUnixTimeSeconds(); 

//Usage 
var now = DateTime.UtcNow; 
var result = ToUnixEpochDate(now).ToString(); 

Mam nadzieję, że to pomoże.

+0

Spowoduje to ten sam błąd (nadal wywołujesz "ToUnixTimeSeconds" w metodzie statycznej). @Kiratijuta ma rację, że projekt musi kierować na platformę .NET 4.6 lub nowszą. –

6

.NET Framework 4.6 działa poprawnie. Po prostu zaktualizuj strukturę docelową aplikacji.

public static long UnixTimeNow => DateTimeOffset.Now.ToUnixTimeSeconds(); 
+0

Innymi słowy, ['ToUnixTimeSeconds' został wprowadzony w .NET 4.6] (https://msdn.microsoft.com/en-us/library/system.datetimeoffset.tounixtimeseconds (v = vs.110) .aspx # Anchor_3) , więc upewnij się, że twój projekt jest skierowany na .NET 4.6 lub wyższy (Właściwości -> Aplikacja -> Struktura docelowa). –

Powiązane problemy