Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to convert Timestamp to DateTime from firebase with flutter

I have Timestamp item in firebase. I get the item from dart code timestamp type. It shows like 'Timestamp(seconds=1590903768, nanoseconds=26999000)' as it is.

I would like to show on my Application only Date like '2020-06-01' or '06-01'.

Please give me advice.

like image 827
tajihiro Avatar asked Dec 13 '22 08:12

tajihiro


2 Answers

Timestamp class has a toDate function that converts it to a DateTime object. See this for more information. Any formatting you want to do in converting it to a string can be done more easily now with intl package formatters.

Example:

Timestamp stamp = Timestamp.now();
DateTime date = stamp.toDate();
like image 195
Christopher Moore Avatar answered May 24 '23 18:05

Christopher Moore


You can convert the Timestamp DataType to DateTime and then format the DateTime according to your requirements.

Note: you will have to install the intl package in your flutter project to make this code work.

Example

add the following method in your dart file.

String formatTimestamp(Timestamp timestamp) {
  var format = new DateFormat('y-M-d'); // <- use skeleton here
  return format.format(timestamp.toDate());
}

then get the TimeStamp from FireStore and pass it into this method

print(formatTimestamp(doc.data['timestamp']));

OutPut

year-month-day

For other available formats, use Skeleton to format.

 ICU Name                   Skeleton
 --------                   --------
 DAY                          d
 ABBR_WEEKDAY                 E
 WEEKDAY                      EEEE
 ABBR_STANDALONE_MONTH        LLL
 STANDALONE_MONTH             LLLL
 NUM_MONTH                    M
 NUM_MONTH_DAY                Md
 NUM_MONTH_WEEKDAY_DAY        MEd
 ABBR_MONTH                   MMM
 ABBR_MONTH_DAY               MMMd
 ABBR_MONTH_WEEKDAY_DAY       MMMEd
 MONTH                        MMMM
 MONTH_DAY                    MMMMd
 MONTH_WEEKDAY_DAY            MMMMEEEEd
 ABBR_QUARTER                 QQQ
 QUARTER                      QQQQ
 YEAR                         y
 YEAR_NUM_MONTH               yM
 YEAR_NUM_MONTH_DAY           yMd
 YEAR_NUM_MONTH_WEEKDAY_DAY   yMEd
 YEAR_ABBR_MONTH              yMMM
 YEAR_ABBR_MONTH_DAY          yMMMd
 YEAR_ABBR_MONTH_WEEKDAY_DAY  yMMMEd
 YEAR_MONTH                   yMMMM
 YEAR_MONTH_DAY               yMMMMd
 YEAR_MONTH_WEEKDAY_DAY       yMMMMEEEEd
 YEAR_ABBR_QUARTER            yQQQ
 YEAR_QUARTER                 yQQQQ
 HOUR24                       H
 HOUR24_MINUTE                Hm
 HOUR24_MINUTE_SECOND         Hms
 HOUR                         j
 HOUR_MINUTE                  jm
 HOUR_MINUTE_SECOND           jms
 MINUTE                       m
 MINUTE_SECOND                ms
 SECOND                       s

I hope this will be helpful!!

like image 31
Kamal Panara Avatar answered May 24 '23 17:05

Kamal Panara