কীভাবে ফ্লটারে ডেটটাইম ফর্ম্যাট করবেন


104

আমি বর্তমান ডিস্প্লে করার চেষ্টা করছি DateTimeএকটি Textএকটি বোতামে আলতো চাপ দিয়ে পরে উইজেট। নিম্নলিখিতটি কাজ করে তবে আমি ফর্ম্যাটটি পরিবর্তন করতে চাই।

বর্তমান পদ্ধতির

DateTime now = DateTime.now();
currentTime = new DateTime(now.year, now.month, now.day, now.hour, now.minute);
 Text('$currentTime'), 

ফলাফল

YYYY-MM-JJ HH-MM:00.000

প্রশ্ন

আমি কীভাবে :00.000অংশটি সরাতে পারি ?

উত্তর:


227

আপনি ইন্টেল প্যাকেজ DateFormatথেকে ব্যবহার করতে পারেন ।

import 'package:intl/intl.dart';

DateTime now = DateTime.now();
String formattedDate = DateFormat('yyyy-MM-dd – kk:mm').format(now);

50
intl: 0.15.7আপনার pubspec.yamlফাইলে নির্ভরতা যুক্ত করতে ভুলবেন না । গ্রন্থাগারের সর্বশেষ সংস্করণটি এখানে পাওয়া যাবে
Defuera

ইন্টেল প্যাকেজটির খুব কম রেটিং রয়েছে
অসীম

স্থিতিশীল সদস্যদের প্রাপ্ত অন্য যে কোনও ব্যক্তি আরম্ভকারীদের মধ্যে প্রবেশ করা যাবে না?
মিস্টার পুল

@ মিআরপুল হ্যাঁ, স্থির সদস্যদের একই সমস্যা ইনিশিয়ালাইজারগুলিতে অ্যাক্সেস করা যাবে না। খুব হতাশার কারণ ডেট স্ট্যাটিক থাকা কোনও অর্থহীন নয়।
মাইকেল তোলসমা

4
আপনি যদি একটি নির্দিষ্ট লোকেল ব্যবহার করতে চান তাহলে, আপনি ব্যবহার করতে পারেন যেমন .: DateFormat.yMd(myLocale.languageCode).format(now)যেখানে আপনি ভালো বর্তমান ডিভাইস লোকেল প্রাপ্ত:Locale myLocale = Localizations.localeOf(context)
জ্লট

40

যোগ intl প্যাকেজ আপনার টু pubspec.yamlফাইল।

import 'package:intl/intl.dart';

DateFormat dateFormat = DateFormat("yyyy-MM-dd HH:mm:ss");

ডেটটাইম অবজেক্টটি স্ট্রিংয়ে রূপান্তর করা

String string = dateFormat.format(DateTime.now());

স্ট্রিংকে ডেটটাইম অবজেক্টে রূপান্তর করা হচ্ছে

DateTime dateTime = dateFormat.parse("2019-07-19 8:40:23");

18

এই পদ্ধতির সাথে, কোনও লাইব্রেরি আমদানি করার দরকার নেই।

DateTime now = DateTime.now();

String convertedDateTime = "${now.year.toString()}-${now.month.toString().padLeft(2,'0')}-${now.day.toString().padLeft(2,'0')} ${now.hour.toString()}-${now.minute.toString()}";

4
অনুপস্থিত ড্যাশ ছাড়াও, আর কোনও নির্ভরতা না যুক্ত করেই যাওয়ার এটি সেরা উপায়।
01000101

4
এটি ভাল তবে ঘন্টাটি 24 ঘন্টা ঘন্টার জন্য মার্কিন-অ-মানক সময়কে ফিরিয়ে দিচ্ছে। পাটিগণিত .... দীর্ঘশ্বাস ফেলুন ... এটি ভুলে যান, আমি কেবল প্যাকেজটি পেয়ে যাব
আমির মেমন

12

এই প্যাকেজ ব্যবহার করে দেখুন, মুহূর্তে , এটি উপরের উপর সঞ্চালিত হয় তথ্যের , কিন্তু এটা সহজ ব্যবহার তোলে momentjs সিনট্যাক্স। নিচে দেখ

import 'package:jiffy/jiffy.dart';   

var now = Jiffy().format("yyyy-MM-dd HH:mm:ss");

আপনি নিম্নলিখিতগুলিও করতে পারেন

var a = Jiffy().yMMMMd; // October 18, 2019

এবং আপনি আপনার ডেটটাইম অবজেক্ট, একটি স্ট্রিং এবং একটি অ্যারেও পাস করতে পারেন

var a = Jiffy(DateTime(2019, 10, 18)).yMMMMd; // October 18, 2019

var a = Jiffy("2019-10-18").yMMMMd; // October 18, 2019

var a = Jiffy([2019, 10, 18]).yMMMMd; // October 18, 2019

5

০.০6 এর পরে কিছু পরিবর্তন হয়েছে তাই এখানে আমি কীভাবে করেছি,

pubspec.yaml এ আমদানি করুন

dependencies:
      flutter:
        sdk: flutter
      intl: ^0.16.1

তারপরে ব্যবহার করুন

  txdate= DateTime.now()


  DateFormat.yMMMd().format(txdate)

4

এখানে আমার সহজ সমাধান। এটির জন্য কোনও নির্ভরতার প্রয়োজন নেই।

তবে তারিখটি স্ট্রিং ফর্ম্যাটে থাকবে। আপনি যদি সময় চান তবে সাবস্ট্রিং মানগুলি পরিবর্তন করুন

print(new DateTime.now()
            .toString()
            .substring(0,10)
     );   // 2020-06-10

2

এই ফাংশনটি ব্যবহার করুন

todayDate() {
    var now = new DateTime.now();
    var formatter = new DateFormat('dd-MM-yyyy');
    String formattedTime = DateFormat('kk:mm:a').format(now);
    String formattedDate = formatter.format(now);
    print(formattedTime);
    print(formattedDate);
  }

আউটপুট:

08:41:AM
21-12-2019

2

আপনি এই বাক্য গঠনটিও ব্যবহার করতে পারেন। YYYY-MM-JJ এইচএইচ-এমএম এর জন্য:

var now = DateTime.now();
var month = now.month.toString().padLeft(2, '0');
var day = now.day.toString().padLeft(2, '0');
var text = '${now.year}-$month-$day ${now.hour}:${now.minute}';

এটি আসল "yyyy-MM-dd"
01000101

1

সরানোর জন্য স্ট্রিং বিভক্ত পদ্ধতিটি ব্যবহার করুন: 00.000

var formatedTime = currentTime.toString().split(':')
Text(formatedTime[0])

======= বা YYYY-MM-DD এইচএইচএম: এমএম: লাইব্রেরি ব্যবহার না করে এসএস ফর্ম্যাটটির জন্য নীচের কোডটি ব্যবহার করুন ====

var stringList =  DateTime.now().toIso8601String().split(new RegExp(r"[T\.]"));
var formatedDate = "${stringList[0]} ${stringList[1]}";
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.