Pergunta

Parece uma coisa simples, mas não consigo encontrar uma maneira de fazê -lo.

Seria ótimo ver alguns métodos diferentes.

Foi útil?

Solução

A resposta de @chuck está correta e me levou ao código a seguir. Pensei em compartilhar:

NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setDay:10];
[comps setMonth:10];
[comps setYear:2010];
NSDate *date = [[NSCalendar currentCalendar] dateFromComponents:comps];

Outras dicas

Você pode usar isso

NSString *dateString = @"03-Sep-11";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"dd-MMM-yy";
NSDate *date = [dateFormatter dateFromString:dateString];

Espero que isso ajude você.

Use scripts gerar scripts do SQL Management Studio e escolha as opções "Índices de script" (sob as opções avançadas de script)

Exemplos rápidos

Exemplos geralmente são a maneira mais fácil de aprender. Aqui estão alguns exemplos.

Agora

Este é o mais fácil.

let currentDateTime = Date()

20 de fevereiro de 2017

// Specify date components
var dateComponents = DateComponents()
dateComponents.year = 2017
dateComponents.month = 2
dateComponents.day = 20

// Create date from components
let userCalendar = Calendar.current // user calendar
let dateThisPostWasUpdated = userCalendar.date(from: dateComponents)

1 de abril de 1976

// Specify date components
var dateComponents = DateComponents()
dateComponents.year = 1976
dateComponents.month = 4
dateComponents.day = 1

// Create date from components
let userCalendar = Calendar.current // user calendar
let appleFoundedDate = userCalendar.date(from: dateComponents)

Precisa de mais detalhes ...?

Existem outras maneiras de criar datas também. Se você quiser aprender isso, assim como exibição uma data, então Veja minha resposta mais completa.

Veja a documentação para Nsdate. Você pode usar o dateFromString: método de NSDateFormatter ou o dateFromComponents: método de NSCalendar.

Eu acho que importar ambas as tabelas em um banco de dados e usar que é provavelmente a maneira mais fácil de fazer isso (e você não precisa de pages-articles.xml para isso).

Outra opção seria analisar manualmente os dois arquivos SQL sem importá-los para o banco de dados.Eu realmente criei uma biblioteca para fazer exatamente isso em .net .

.

É ridículo, não é?

Meados de 2013 e maçã ainda Não forneceu uma maneira simples de definir um valor nsdate.

Durante o meu projeto atual do iPad, eu não podia acreditar que precisava parar a produtividade por um tempo para escrever minha própria classe ajudante para obter o valor do ano de um nsdate. Quero dizer, vamos lá, isso é coisa básica.

De qualquer forma, aqui está a classe ajudante que usei no meu projeto, para converter uma string em um valor nsdate:

@implementation DateHelper

+(NSDate*)parseDateString:(NSString *)dateString
{
    NSDateFormatter *rfc3339TimestampFormatterWithTimeZone = [[NSDateFormatter alloc] init];
    [rfc3339TimestampFormatterWithTimeZone setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]];
    [rfc3339TimestampFormatterWithTimeZone setDateFormat:@"MMM dd, yyyy"];

    NSDate *theDate = nil;
    NSError *error = nil;
    if (![rfc3339TimestampFormatterWithTimeZone getObjectValue:&theDate forString:dateString range:nil error:&error]) {
        NSLog(@"Date '%@' could not be parsed: %@", dateString, error);
    }

    return theDate;
}

@end

Usando este código, você pode definir um valor nsdate usando algo como:

NSDate* date = [DateHelper parseDateString:@"Jul 16, 2013"];

Nota: Esta função foi baseada no código retirado daqui:https://stackoverflow.com/a/3968411/391605

Minha solução estava para usar o seguinte código, mas eu achei que as vezes, simplesmente não iria analisar e retornaria nada.

//  Take a date string in the format "Oct 23, 2013", and convert it into a NSDate value
//  THIS DOESN'T WORK !  DON'T TRUST THIS CODE !!
NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"MMM dd, yyyy"];
[formatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];

NSDate* date = [formatter dateFromString:dateString];

Lembro -me de que falhou miseravelmente em "12 de outubro de 2012" ... e é por isso que desisti e usei a função "Parsedatestring" mais complicada mostrada acima.

Meu ponto é ... tenha cuidado.

Algumas das funções nsdate muito básicas simplesmente não funcionam corretamente ...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top