Python mengkonversi string ke datetime tanpa format

Dalam postingan ini, Anda akan mempelajari cara mengonversi string Python menjadi tanggal, menggunakan metode datetime modul .strptime() . Khususnya, Anda akan mempelajari cara mengonversi string menjadi tanggal dan cara mengonversi kolom Pandas menjadi waktu dengan pendekatan ini

Bekerja dengan tanggal, waktu, dan zona waktu merupakan masalah yang sering dihadapi dalam pengembangan perangkat lunak. Tanggal dan waktu yang Anda terima kembali mungkin tidak selalu dalam format datetime. Kemudian menjadi penting untuk mengubahnya

Jawaban Cepat. Gunakan fungsi strptime Datetime

from datetime import datetime
date_string = '2021-12-31'
datetime = datetime.strptime(date_string, '%Y-%m-%d')

print(datetime)
# Returns: 2021-12-31 00:00:00

Mari selami

Daftar isi

Python Datetime Strptime. Apa itu?

Modul datetime Python disertakan dalam instalasi Python Anda, artinya Anda tidak perlu khawatir untuk menginstalnya

Modul datetime dilengkapi dengan tiga jenis objek utama.

datetime.strptime(date_string=, format=)
2, 
datetime.strptime(date_string=, format=)
3, dan datetime. Mereka dapat dianggap cukup jelas, tetapi untuk berjaga-jaga.
datetime.strptime(date_string=, format=)
_2 berhubungan dengan tanggal, 
datetime.strptime(date_string=, format=)
3 berhubungan dengan waktu, dan datetime berhubungan dengan tanggal dan waktu

Salah satu metode yang sangat membantu yang dapat kita gunakan dalam modul datetime adalah metode strptime yang memungkinkan kita mengonversi 

from datetime import datetime

date_string = '2021-12-31 15:37'
datetime = datetime.strptime(date_string, '%Y-%m-%d %H:%M')

print(datetime)

# Returns: 2021-12-31 15:37:00
0 menjadi 
datetime.strptime(date_string=, format=)
2 (atau dalam kasus kita, a datetime)

Metodenya terlihat seperti ini

datetime.strptime(date_string=, format=)
_
  • from datetime import datetime
    
    date_string = '2021-12-31 15:37'
    datetime = datetime.strptime(date_string, '%Y-%m-%d %H:%M')
    
    print(datetime)
    
    # Returns: 2021-12-31 15:37:00
    _3 adalah string yang menyimpan apa yang ingin kita konversi
  • from datetime import datetime
    
    date_string = '2021-12-31 15:37'
    datetime = datetime.strptime(date_string, '%Y-%m-%d %H:%M')
    
    print(datetime)
    
    # Returns: 2021-12-31 15:37:00
    _4 berisi format string. Pelajari lebih lanjut tentang ini di bagian
Python mengkonversi string ke datetime tanpa format
Cara menggunakan strptime untuk mengubah string python menjadi tanggal

Bagaimana Anda mengonversi String Python ke Tanggal?

Untuk mengonversi string Python menjadi tanggal (atau datetime), kita dapat menggunakan metode datetime .strptime() 

Mari kita lihat bagaimana kita bisa melakukan ini

  1. Kami mengimpor objek datetime dari modul datetime 
  2. Kami meneruskan string ke dalam metode .strptime(), serta formatnya
  3. Kami menetapkan ini ke variabel baru dan mencetaknya
from datetime import datetime

date_string = '2021-12-31 15:37'
datetime = datetime.strptime(date_string, '%Y-%m-%d %H:%M')

print(datetime)

# Returns: 2021-12-31 15:37:00

Sekilas, kode format ini mungkin terlihat sedikit lucu. Anda akan mempelajari semua tentang beberapa contoh berbeda di bagian selanjutnya

Apa itu Kode Format Datetime?

Modul datetime menggunakan kode format tertentu untuk mengonversi string menjadi waktu tanggal atau waktu tanggal menjadi string. Dalam daftar di bawah ini, Anda akan mempelajari sejumlah kode format terpenting yang akan Anda temui

  • import pandas as pd
    
    df = pd.DataFrame.from_dict(
        {
            'Name': ['Jane', 'Melissa', 'John', 'Matt'],
            'Hire Date': ['2021-03-13', '2019-01-01', '2018-04-12', '2016-12-12'],
            'Gender': ['F', 'F', 'M', 'M']
        }
    )
    
    print(df)
    _0. Hari kerja dalam nama singkatan lokal (mis. g. , Sen)
  • import pandas as pd
    
    df = pd.DataFrame.from_dict(
        {
            'Name': ['Jane', 'Melissa', 'John', 'Matt'],
            'Hire Date': ['2021-03-13', '2019-01-01', '2018-04-12', '2016-12-12'],
            'Gender': ['F', 'F', 'M', 'M']
        }
    )
    
    print(df)
    _1. Hari kerja dengan nama lengkap lokal (mis. g. , Senin)
  • import pandas as pd
    
    df = pd.DataFrame.from_dict(
        {
            'Name': ['Jane', 'Melissa', 'John', 'Matt'],
            'Hire Date': ['2021-03-13', '2019-01-01', '2018-04-12', '2016-12-12'],
            'Gender': ['F', 'F', 'M', 'M']
        }
    )
    
    print(df)
    _2. bulan sebagai nama singkatan lokal (mis. g. , Des)
  • import pandas as pd
    
    df = pd.DataFrame.from_dict(
        {
            'Name': ['Jane', 'Melissa', 'John', 'Matt'],
            'Hire Date': ['2021-03-13', '2019-01-01', '2018-04-12', '2016-12-12'],
            'Gender': ['F', 'F', 'M', 'M']
        }
    )
    
    print(df)
    _3. bulan sebagai nama lengkap lokal (mis. g. , Desember)
  • import pandas as pd
    
    df = pd.DataFrame.from_dict(
        {
            'Name': ['Jane', 'Melissa', 'John', 'Matt'],
            'Hire Date': ['2021-03-13', '2019-01-01', '2018-04-12', '2016-12-12'],
            'Gender': ['F', 'F', 'M', 'M']
        }
    )
    
    print(df)
    _4. bulan sebagai angka desimal tanpa bantalan (mis. g. , 01)
  • import pandas as pd
    
    df = pd.DataFrame.from_dict(
        {
            'Name': ['Jane', 'Melissa', 'John', 'Matt'],
            'Hire Date': ['2021-03-13', '2019-01-01', '2018-04-12', '2016-12-12'],
            'Gender': ['F', 'F', 'M', 'M']
        }
    )
    
    print(df)
    _5. hari sebagai angka desimal tanpa bantalan (mis. g. , 09)
  • import pandas as pd
    
    df = pd.DataFrame.from_dict(
        {
            'Name': ['Jane', 'Melissa', 'John', 'Matt'],
            'Hire Date': ['2021-03-13', '2019-01-01', '2018-04-12', '2016-12-12'],
            'Gender': ['F', 'F', 'M', 'M']
        }
    )
    
    print(df)
    _6Y. tahun dengan abad (mis. g. , 2021)
  • import pandas as pd
    
    df = pd.DataFrame.from_dict(
        {
            'Name': ['Jane', 'Melissa', 'John', 'Matt'],
            'Hire Date': ['2021-03-13', '2019-01-01', '2018-04-12', '2016-12-12'],
            'Gender': ['F', 'F', 'M', 'M']
        }
    )
    
    print(df)
    _6y. tahun tanpa abad (mis. g. , 21)

Misalnya, jika Anda diberi string yang terlihat seperti ini.

import pandas as pd

df = pd.DataFrame.from_dict(
    {
        'Name': ['Jane', 'Melissa', 'John', 'Matt'],
        'Hire Date': ['2021-03-13', '2019-01-01', '2018-04-12', '2016-12-12'],
        'Gender': ['F', 'F', 'M', 'M']
    }
)

print(df)
_8, Anda akan menulis
import pandas as pd

df = pd.DataFrame.from_dict(
    {
        'Name': ['Jane', 'Melissa', 'John', 'Matt'],
        'Hire Date': ['2021-03-13', '2019-01-01', '2018-04-12', '2016-12-12'],
        'Gender': ['F', 'F', 'M', 'M']
    }
)

print(df)
9

Hal penting yang perlu diketahui di sini adalah bahwa karakter seperti koma atau titik dua juga perlu disertakan. Ini mungkin terasa agak tidak wajar tetapi pikirkan kode format sebagai pengganti

Untuk melihat kode format lainnya, lihat

Konversikan kolom Pandas ke datetime dengan strptime

Pandas memiliki alat bawaan yang sangat membantu yang disebut 

      Name   Hire Date Gender
0     Jane  2021-03-13      F
1  Melissa  2019-01-01      F
2     John  2018-04-12      M
3     Matt  2016-12-12      M
0 untuk mengonversi kolom menjadi datetime. Anda dapat mempelajarinya secara detail di posting ini di sini

Mari muat kerangka data ini dan lihat tampilannya

import pandas as pd

df = pd.DataFrame.from_dict(
    {
        'Name': ['Jane', 'Melissa', 'John', 'Matt'],
        'Hire Date': ['2021-03-13', '2019-01-01', '2018-04-12', '2016-12-12'],
        'Gender': ['F', 'F', 'M', 'M']
    }
)

print(df)

Ini kembali

      Name   Hire Date Gender
0     Jane  2021-03-13      F
1  Melissa  2019-01-01      F
2     John  2018-04-12      M
3     Matt  2016-12-12      M

Sekarang, mari gunakan metode untuk mengonversi kolom 

      Name   Hire Date Gender
0     Jane  2021-03-13      F
1  Melissa  2019-01-01      F
2     John  2018-04-12      M
3     Matt  2016-12-12      M
1 menjadi datetime

df['Hire Date'] = pd.to_datetime(df['Hire Date'])

Namun, jika Anda ingin menggunakan metode datetime 

      Name   Hire Date Gender
0     Jane  2021-03-13      F
1  Melissa  2019-01-01      F
2     John  2018-04-12      M
3     Matt  2016-12-12      M
2, Anda dapat menerapkan fungsi tersebut ke seluruh kolom. Perlu diingat, ini tidak efisien dan metode Pandas 
      Name   Hire Date Gender
0     Jane  2021-03-13      F
1  Melissa  2019-01-01      F
2     John  2018-04-12      M
3     Matt  2016-12-12      M
0 jauh lebih efisien. Pelajari lebih lanjut tentang metode Panda ________21______4 

df['Hire Date'] = df['Hire Date'].apply(lambda x: datetime.strptime(x, '%Y-%m-%d'))

Kesimpulan

Dalam posting ini, Anda belajar cara mengonversi string Python ke tanggal atau waktu. Anda telah mempelajari cara kerja fungsi datetime strptime, kode format datetime, serta cara menangani konversi string ke tanggal di Pandas

Bagaimana cara mengubah string menjadi datetime tanpa format dengan Python?

Untuk mengonversi string menjadi objek datetime, kita dapat menggunakan fungsi strptime() dari modul datetime . Misalnya, Anda mungkin perlu mengonversi string numerik seperti 13-05-2021 menjadi objek datetime. atau Anda ingin mengonversi string yang mewakili tanggal seperti Senin, 13 Mei 2021 menjadi objek datetime.

Bagaimana cara mengonversi string menjadi datetime dengan Python?

Ubah String menjadi objek datetime menggunakan datetime. strptime() Tanggal waktu. metode strptime() mengembalikan objek datetime yang cocok dengan date_string yang diuraikan oleh format. Kedua argumen diperlukan dan harus berupa string.

Bagaimana cara mengonversi string menjadi stempel waktu dengan Python?

Impor perpustakaan datetime. Gunakan waktu tanggal. kelas datetime untuk menangani kombinasi tanggal dan waktu. Gunakan metode strptime untuk mengonversi datetime string menjadi datetime objek .

Bagaimana cara mengubah tanggal string menjadi tanggal?

String Java Hingga Saat Ini . Untuk mempelajari konsep ini dengan baik, Anda harus mengunjungi kelas DateFormat dan SimpleDateFormat. using parse() method of DateFormat and SimpleDateFormat classes. To learn this concept well, you should visit DateFormat and SimpleDateFormat classes.