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.
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();
You get back a map from firestore. Assuming you have named it "creationDate", you can convert the returned timestamp to a DateTime object using the toDate() dart function. The "simplest" way to format the datetime is to use the intl package
// Map From firestore
Map data = documentSnapshot.data();
var creationDate = data['creationDate'].toDate();
//Format using intl package
DateFormat _dateFormat = DateFormat('y-MM-d');
String formattedDate = _dateFormat.format(dateTime);
You can convert Timestamp
DataType to DateTime
then formate the DateTime according to your requirements.
Example
add this following method in your dart file.
String formatTimestamp(Timestamp timestamp) {
var format = new DateFormat('y-MM-d'); // 'hh:mm' for hour & min
return format.format(timestamp.toDate());
}
then get the TimeStamp from FireStore and pass it into this method
print(formatTimestamp(doc.data['timestamp']));
OutPut
2021/01/11
I hope this will be helpfull !!
If you want Hours and minutes(hh:mm) from timestamp, Simply create following method which gives you string in return.
String convertTimestampToHm(Timestamp timestamp) {
var format = DateFormat('Hm'); // convert into hours and minutes
return format.format(timestamp.toDate());
}
NOTE: - You can always use Skeleton base on requiremrnt.
There are different ways to convert TimeStamp to DateTime
which differs based on the scenario. I have summarize all the possible ways, Pick the one which suits your case !!
Firebase timestamp
to DateTime
: document['timeStamp'].toDate()
(document["timeStamp"] as Timestamp).toDate()
DateTime.fromMillisecondsSinceEpoch(document['timeStamp'].millisecondsSinceEpoch);
Timestamp.fromMillisecondsSinceEpoch(document['timeStamp'].millisecondsSinceEpoch).toDate();
If timeStamp
is in microseconds
use:
DateTime.fromMicrosecondsSinceEpoch(timestamp * 1000000);
If timeStamp
is in milliseconds
use:
DateTime.fromMillisecondsSinceEpoch(timestamp * 1000);
Add the following function in your dart file.
String formatTimestamp(Timestamp timestamp) { var format = new DateFormat('yyyy-MM-dd'); // <- use skeleton here return format.format(timestamp.toDate()); }
call it as formatTimestamp(document['timestamp'])
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.